我正在使用ASP.NET MVC3,Jquery和Kendo UI MVC Wrappers。
我有一个简单的Kendo UI下拉菜单。它是一个可以为空的下拉列表,因此我将.OptionLabel属性设置为“”。
加载页面时有两种情况: 1.)下拉数据由控制器提供。 2.)下拉的数据不是由控制器提供的,在这种情况下我给它一个空列表
初次加载页面时,唯一可用的选项是可空选项。用户可以使用页面上的其他控件向下拉列表添加更多选择。
当情景#2发生时,一切都运行得很好。我得到一个包含所有选择和null选项的下拉列表。列表中的项目来自我的控制器。下拉按预期工作。
情景#1发生时。似乎下拉不是初始化或类似的东西。在这种情况下,我从控制器发送一个空列表。我的期望是下拉应该有一个选项,这是null选项(因为我的选项标签),但我得到一个下拉,处于某种禁用状态。
所以在这种情况下,将一个空列表传递给正确的事情或者我应该做些什么?
这是下拉声明:
@(Html.Kendo().DropDownList()
.Name("allPeople")
.DataValueField("Id")
.DataTextField("Name")
.OptionLabel(" ")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("_SelectPeopleList", "People");
}).ServerFiltering(true);
})
.Events(e => e
.Change("all_change").Open("all_open"))
)
所以重申一下,当我点击场景#2时,_SelectPeopleList返回一个列表,一切正常。
当我点击方案#1时,_SelectPeopleList返回一个空列表,下拉列表会出现类似于禁用状态的内容。
希望我很清楚。
答案 0 :(得分:0)
好的,我刚刚发现了一种方法。
我传递一个id = 0和“”作为文本字段的列表,而不是传递一个空列表。 然后删除.OptionLabel(“”)
但是,如果我必须这样做,那么有什么意义.OptionLabel ??