【问题标题】:DeExpress MVC 17.1 How populate TokenBox from a databaseDevExpress MVC 17.1 如何从数据库中填充 TokenBox
【发布时间】:2018-04-01 02:13:46
【问题描述】:

我想使用属性 tokenBoxSettings.Properties.DataSource

从数据库中填充一个 TokenBox

TokenBoxView.cshtml

 groupSettings.Items.Add(
                        formLayoutSettings.Items.Add(i =>
                        {
                            i.FieldName = "email";
                            i.Caption = "Email";
                            i.NestedExtensionType = FormLayoutNestedExtensionItemType.TokenBox;
                            TokenBoxSettings tokenBoxSettings = (TokenBoxSettings) i.NestedExtensionSettings;
                            tokenBoxSettings.Width = 350;
//data binding
        tokenBoxSettings.Properties.DataSource = mainController.GetMails();
                            tokenBoxSettings.Properties.TextField = "email_empresarial";
                            tokenBoxSettings.Properties.ValueField = "email_empresarial";
                            tokenBoxSettings.Properties.IncrementalFilteringMode = IncrementalFilteringMode.Contains;
                            tokenBoxSettings.Properties.ValueSeparator = ';';
                        })
                        );

TokenBoxController.cs

//mainController
//I created a dictionary based on the result of select
public Dictionary<string, string> GetMails()
        {
            var email = db.usuario.ToList().Select(e => new { e.email_empresarial });
            var emails = new Dictionary<string, string>();

            foreach (var mail in email)
            {
                correos.Add(mail.ToString(), mail.ToString());
            }
            return emails;
}

但它向我显示了“明确的对象”,我只需要值,例如 kennethmanuel

tokenBox list

我做错了什么?或者我还能用什么其他方法?

【问题讨论】:

    标签: devexpress devexpress-mvc


    【解决方案1】:

    您为tokenBoxSettings.Properties.TextFieldtokenBoxSettings.Properties.ValueField 指定相同的email_empresarial 字段名称。

    由于您将 TokenBox 绑定到 Dictionary,请尝试更改 TextFieldValueField 的设置以引用 Dictionary 键和值,如下所示:

    tokenBoxSettings.Properties.TextField = "Value";
    tokenBoxSettings.Properties.ValueField = "Key";
    

    此外,在您的 GetMail() 方法中,您已经声明了 var emails,但在循环中,您将项目添加到未声明的 correos 变量中。你确定这里没有错误吗?

    另外注意,在GetMails() 返回的字典中,您使用mail.ToString() 的相同值填充字典键和值。你确定你真的需要使用 Dictionary 来绑定你的 TokenBox 吗?如果键和值相等,您可以尝试使用普通的List&lt;string&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多