如何在使用模板时以编程方式设置kendo下拉列表文本?

时间:2015-09-12 01:15:29

标签: javascript jquery templates drop-down-menu kendo-ui

我有这个下拉列表

        $("#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...");

这适用于另一个下拉列表,该下拉列表中的模板只有一个值,但是这个值有两个值(房间可用性)。

Firebug引发&#34; ReferenceError:未定义可用性&#34;所以问题肯定是模板期望可用性

的值

我试过了

    rooms.text("Select a room...","Something here");

但是来自Firebug的结果和错误消息......

您可以在http://jsfiddle.net/pmeconi/jr2kgvsd/1/

看到这两种行为

当模板上有多个值时,有关如何使其工作的任何想法吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我不知道这是否适用于您的设置,但您可以使用&#34; optionLabel&#34;下拉属性,然后选择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/