在EditorTemplate中使用Kendo DropDownListFor

时间:2015-08-13 12:56:22

标签: dynamic kendo-ui grid

我正在使用GridBoundColumnBuilder()创建动态剑道网格。

我遍历上一页的所有控件以创建网格。 例如,使用myTextbox()myCheckbox()

这些在网格中创建列。我已经创建了所有列并填充了数据。

我的问题在于DropdownlistMultiselect列表,它们填充数据但在创建网格时不显示正确的数据。 下拉列表显示值,而不是上一个控件的文本:

1 = My
2 = Data

Dropdownlist将显示1而不是My。而且,Multiselect仅显示[object Object]

当您单击网格中的任一控件时,它会切换为显示正确的文本,但在您单击时会丢失。

我做错了什么想法?

foreach (ControlBase control in flatColumns)
 {
      GridBoundColumnBuilder<dynamic> thisColumn;
      if (control.Lookups != null && control.Lookups.Any())
           {
                if (!control.IsMultiSelect){
                     thisColumn = column.Bound(control.ControlType, control.ColumnName).Title(control.Description);
                            thisColumn.EditorTemplateName("DropDownList");
                            thisColumn.Width(250);
                  }
                   else
                   {
                        thisColumn = column.Bound(control.ControlType, control.ColumnName).Title(control.Description);
                            thisColumn.EditorTemplateName("MultiDropDownList");
                            thisColumn.Width(250);
                    }

     }
}

Dropdown Template
@(Html.Kendo().DropDownListFor(m => m).HtmlAttributes(new { @class = "form-control" })
    .BindTo((IEnumerable) ViewData[currentColumn + "List"])
        .DataTextField("Text")
        .DataValueField("Value")
        .ValuePrimitive(true)
                .Text("Value")

Multiselect Templage

@(Html.Kendo().MultiSelectFor(m => m)
                    .HtmlAttributes(new { @class = "form-control" })

                        .BindTo((IEnumerable)ViewData[currentColumn + "List"])
                        .DataTextField("Text")
                        .DataValueField("Value")

1 个答案:

答案 0 :(得分:0)

您是否尝试更改.Text以显示文本而不是值?

    .DataTextField("Text")
    .DataValueField("Value")
    .ValuePrimitive(true)
            .Text("Text")