1

我做了一次这个话题,但是我掌握的信息有点难以理解,也没有得到太多帮助,所以我花了一天时间制作 JSBIN 示例后再次尝试。

我有一种情况,我正在使用 KendoUI 制作视图模型,并在其中制作一些项目,当您单击绘制的子项目时,它会打开一个KendoWindow让您更具体地编辑它们。

dataSource但是,我认为这个概念存在问题。当我尝试绑定到dataSource我的页面上的 a 时,它工作正常;但是当我尝试将剑道控件绑定到remote呈现窗口中的数据源时,它拒绝获取。

如果我只绑定到本地数据、硬编码数据,它就可以工作;所以我知道它dropdownlist正在工作。但我真的需要能够绑定到远程数据。

我准备了一个JSBIN来展示这种行为(或缺乏这种行为)

JSBIN 示例

任何帮助将不胜感激。要查看行为,请单击按钮Create Socket Rail,然后使用 将NumericTextBox大小增加到大于 0 的任何数字,然后单击其中一个绘制的框。

4

1 回答 1

1

您需要在kendoWindow.activate事件中创建 kendoDropDownList(或至少在那里绑定 DataSource)。根据您的代码改编,这将起作用:

kendoWindowWidget = function (options) {
    // extend the settings options so that we can take
    // explicit configuration from the widget caller.
    var settings = $.extend({
        resizable: false,
        modal: true,
        viewable: true,
        visible: false,
        width: "450px",
        height: "450px",
        activate: function () {
            var myDataSource = new kendo.data.DataSource({
                transport: {
                    read: {
                        dataType: "json",
                        url: "http://jsbin.com/UYEbOXi/3/js"
                    }
                }
            });
            widgets.windows.sockets.type = $('#socket-type').kendoDropDownList({
                dataTextField: "Name",
                dataValueField: "Id",
                dataSource: myDataSource
            }).data("kendoDropDownList");
        }
    }, options);

    var $window = $("<div id='kendow-editor-window'/>")
        .kendoWindow(settings)
        .data("kendoWindow");

    $window.databind = function (e) {
        kendo.bind($window.element, e);
        $window.open().center();
    };

    // return the created combo box
    return $window;
};

改编的 JSBin(我删除了一堆东西以便于管理):http: //jsbin.com/uMuFewI/3/edit

于 2013-11-20T02:34:20.640 回答