我在我的应用程序中使用了一个Kendo ComboBox,并按如下方式定义了控件的标记:
@(Html.Kendo().ComboBox().Name("GroupUserName")
.Placeholder("- Select Group -")
.Suggest(true)
.BindTo(
(Model.Groups ?? new[] { Model.Group })
.Select(i => new { i.GroupName, i.GroupUserName })
)
.DataTextField("GroupName")
.DataValueField("GroupUserName"))
我知道BindTo方法中有2条记录被绑定,并且这些记录被传递给客户端组件。
jQuery(
function(){
jQuery("#GroupUserName").kendoComboBox({"dataSource":
[{"GroupName":"membershipgroup01","GroupUserName":"membershipgroup01"},
{"GroupName":"publicgroup01","GroupUserName":"publicgroup01"}]
,"dataTextField":"GroupName","dataValueField":"GroupUserName",
"placeholder":"- Select Group -","suggest":true
});
});
然而,当我击中下拉时,组合框没有任何显示。没有下拉菜单允许我选择一个值。看到这张图片:
单击下拉选择器时,不会显示下拉列表。为什么呢?
我正在使用JQuery 1.8.2,以及kendo.all和kendo.aspnetmvc脚本......
答案 0 :(得分:0)
您绑定到没有字段名称的匿名类型。 Kendo没有任何东西可以抓取,因为你告诉它绑定的对象没有名为GroupName
和GroupUserName
的字段。
从它看起来,你根本不需要绑定到匿名类型。所以这个:
.BindTo(
(Model.Groups ?? new[] { Model.Group })
.Select(i => new { i.GroupName, i.GroupUserName })
)
应该是:
.BindTo(
(Model.Groups ?? new[] { Model.Group })
)
如果由于某种原因你需要绑定到匿名类型,你可以给字段指定适当的名称:
.BindTo(
(Model.Groups ?? new[] { Model.Group })
.Select(i => new { GroupName = i.GroupName, GroupUserName = i.GroupUserName })
)
答案 1 :(得分:0)
For me this was a conflict between JQuery UI and Kendo UI. When I removed references to JQuery UI, it worked.