我正在评估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
答案 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 +组合框使用相同的解决方案。