使用模板时,我如何以编程方式设置剑道下拉列表文本
how can I set kendo dropdownlist text programatically when using a template?
我有这个下拉列表
$("#rooms").kendoDropDownList({
template: kendo.template($("#roomsListTemplate").html()),
valueTemplate: kendo.template($("#roomsSelectTemplate").html()),
filter: "contains",
dataTextField: "room",
dataValueField: "id",
dataSource: roomsList,
index: 0,
select: onSelectRoom
});
var rooms = $("#rooms").data("kendoDropDownList");
使用此模板的
<script id="roomsSelectTemplate" type="text/x-kendo-template">
<span class="roomName">
#if (room != 'null' && room != '') { #
#=room#
# } #
#if (availability == 'roomOk') { #
- Available
# } #
</span>
</script>
现在我希望能够以编程方式设置下拉列表文本。我正在尝试:
rooms.text("Select a room...");
这在另一个模板只有一个值的下拉列表上工作正常,但是这个下拉列表有两个值(room和availability)。
Firebug抛出"ReferenceError: availability is not defined",所以问题肯定是模板期望得到 availability
的值。我试过了
rooms.text("Select a room...","Something here");
但是同样的结果和Firebug的错误信息…
你可以在这里看到这两种行为http://jsfiddle.net/pmeconi/jr2kgvsd/1/
当模板上有多个值时,如何使其工作?
提前感谢!
我不知道这是否适用于您的设置,但您可以使用"optionLabel"属性为您的下拉菜单,然后选择0元素。
看看你的小提琴,我稍微修改了一下。
$("#rooms2").kendoDropDownList({
template: kendo.template($("#roomsListTemplate2").html()),
valueTemplate: kendo.template($("#roomsSelectTemplate2").html()),
filter: "contains",
dataTextField: "room",
dataValueField: "id",
optionLabel: "Select room",
dataSource: roomsList,
index: 0
});
$("#changeText2").click(function(e) {
rooms2.select(0);
});
http://jsfiddle.net/jr2kgvsd/2/相关文章:
- angularjs路线过渡如何以交互方式设置动画
- 设置两个反应组件之间状态的正确方式
- 在jquery中设置多个全局变量的最佳方式
- 使用JQuery以不同的方式设置每个
- 样式
- Javascript或浏览器以不同的方式设置位置
- HTML + JS:设置文本区域内容样式的最佳方式
- 离子/角度日期输入使用时刻以编程方式设置
- 有没有一种快捷方式可以让我用javascript或jQuery设置对象的字段
- 以安全的方式设置nodeJS Transform流的编码
- UIWebView - 以编程方式设置默认日期
- 下划线/洛达什号中的快捷方式,用于(递归)设置对象的所有属性
- 我如何在 jQuery 中以编程方式设置输入文本框的值
- 设置通知系统的最佳方式
- 尝试以编程方式设置焦点不适用于 Firefox
- 如何以图像居中的方式设置网站的位置
- Sitecore SPEAK UI 以编程方式设置组合框的选定项
- Select2 以编程方式设置搜索词并打开包含相关结果的下拉列表(无 ajax 调用)
- 在 JavaScript 中以编程方式设置构造函数参数
- 无法设置未定义的 - 以编程方式创建的元素的属性 X
- 有没有一种设置方式"!“重要”;用于event.stop()