剑道UI下拉;最初没有值(仅为null)

时间:2014-02-07 23:51:48

标签: asp.net-mvc asp.net-mvc-3 kendo-ui

我正在使用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返回一个空列表,下拉列表会出现类似于禁用状态的内容。

希望我很清楚。

1 个答案:

答案 0 :(得分:0)

好的,我刚刚发现了一种方法。

我传递一个id = 0和“”作为文本字段的列表,而不是传递一个空列表。 然后删除.OptionLabel(“”)

但是,如果我必须这样做,那么有什么意义.OptionLabel ??