5

我有两个kendoDropDownList使用级联的网页。第一个是,第二个是城市。当您选择一个时,您可以从第二个城市DropDownList中进行选择。如果我使用鼠标选择它们,这将非常有效。

问题是当我尝试将一些数据绑定到这些 DropDownLists更新State而不是City时。

这是我页面的 HTML:

<div id="container">
    <input id="state" name="state" data-bind="value: state"/>
    <input id="city" name="city" data-bind="value: city"/>
</div>

这是 JavaScript:

var state = $("#state").kendoDropDownList({
    dataTextField: "state",
    dataValueField:"state",
    dataSource:    {
        serverFiltering:true,
        data:           states
    },
    change:        function () {
        console.log("state changed");
    }
}).data("kendoDropDownList");

var city = $("#city").kendoDropDownList({
    autoBind:      false,
    dataTextField: "city",
    dataValueField:"city",
    cascadeFrom:   "state",
    dataSource:    {
        serverFiltering:true,
        transport:      {
            read:function (operation) {
                var ds = cities [state.value()];
                if (ds) {
                    return operation.success(ds);
                } else {
                    return operation.success(["N/A"]);
                }
            }
        }
    }
}).data("kendoDropDownList");

如果我使用以下代码绑定数据:

kendo.bind($("#container"), { state:"California", city: "Berkeley" });

除非State DropDownList已经包含California它不会设置city为的值Berkeley

似乎 usingbind不会触发Stateschange中的事件,然后City不会重新加载新State的Cities DropDownList DropDownList

您可以在http://jsfiddle.net/OnaBai/QUhEX/3/中找到此代码

我应该如何使用MVVM绑定的级联

4

1 回答 1

6

我准备了一个演示,展示如何将级联下拉列表与 MVVM 一起使用:http: //jsbin.com/ujorer/1/edit

于 2012-11-24T16:28:26.090 回答