Kendo UI - 下拉列表设置值autoBind = false设置

时间:2013-05-29 00:48:40

标签: kendo-ui

我正在评估kendo ui现在用于我们的大型应用程序。我们的情况是,我们在下拉列表中有很多值(例如200+),并且有超过1个下拉列表的大小。所以,如果我们有一个复杂的形式。页面加载需要时间来呈现表单。 (由于每个盒子需要从服务中加载并填满)。

我们通过在kendo ui的下拉列表中编写带有按需支持(如autoBind属性)的自己的asp.net Web控件来避免这种情况。

现在,来自KendoUI的DropDownList用于autobind = false,但是当设置值时,它首先从远程绑定中获取数据,然后选择适当的值。 (这很酷,非常适合小型列表)但可能这意味着当我们加载页面并设置值时,它将为每个下拉列表发出远程绑定调用。

现在,

我们可以设置值/文本而不发出远程绑定。我们希望只有当用户点击下拉菜单时才能进行远程绑定。 (当我们填写表格时)。这将节省额外的系统调用,并帮助快速将表单呈现给用户。

这是JS Bin

http://jsbin.com/ayivad/3/edit

如果某人来自剑道ui希望我帮忙 - 让我知道,但这个想法将允许我们使用kendo ui dropdown并充分利用。

<input type="button" id="btnSet" value="Set Value (Click without clicking on DropDown" />
  <br/><br/>
<select id="products"></select>



 $(document).ready(function () {
        $("#products").kendoDropDownList({
            dataTextField: "ProductName",
            dataValueField: "ProductID",
            autoBind: false,
            dataSource: {
                transport: {
                    read: {
                        dataType: "jsonp",
                        url: "http://demos.kendoui.com/service/Products",
                    }
                }
            }
        });
        var combobox = $("#products").data("kendoDropDownList"),
        setValue = function (e) {
            if (e.type != "keypress" || kendo.keys.ENTER == e.keyCode)
                combobox.value(3);
        };
       $("#btnSet").click(setValue);
    });

谢谢, RIZ

1 个答案:

答案 0 :(得分:4)

1)设置文本而不是值:http://docs.kendoui.com/api/web/dropdownlist#configuration-text

剑道: text String(默认值:“”) 当autoBind设置为false时,定义窗口小部件的文本。 实施例

$("#dropdownlist").kendoDropDownList({
     autoBind: false,
     text: "Chai"
});

脏选择 - 尝试劫持ddl“可选标签”以满足您的需求。加载页面的数据,包括要在ddl中显示的值,然后使用等于要显示的值的可选值初始化ddl。一旦用户打开ddl,将加载远程数据,一旦加载数据,您将过度/删除可选标签和欢乐日。 http://docs.kendoui.com/api/web/dropdownlist#configuration-optionLabel (考虑拆分列表,200长期下载远离用户友好。)

$("#dropdownlist").kendoDropDownList({
optionLabel: "My value" });

另外考虑使用Kendo ComboBox,在完成200个项目后,在3个字符左右后自动完成声音是非常明智的解决方案。我们对500 +组合框使用相同的解决方案。