我正在使用GridBoundColumnBuilder()
创建动态剑道网格。
我遍历上一页的所有控件以创建网格。
例如,使用myTextbox()
,myCheckbox()
等
这些在网格中创建列。我已经创建了所有列并填充了数据。
我的问题在于Dropdownlist
和Multiselect
列表,它们填充数据但在创建网格时不显示正确的数据。
下拉列表显示值,而不是上一个控件的文本:
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")
答案 0 :(得分:0)
您是否尝试更改.Text以显示文本而不是值?
.DataTextField("Text")
.DataValueField("Value")
.ValuePrimitive(true)
.Text("Text")