Kendo UI - “kendoWindow”中的远程数据绑定失败

时间:2013-11-19 22:51:12

标签: kendo-ui kendo-window

我曾经做过一次这个话题,但我所掌握的信息有点难以理解,我没有得到太多帮助,所以我在花了一天制作JSBIN样本之后再次尝试。

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

但是,我认为dataSource概念存在问题。当我尝试绑定到我页面上的dataSource时,它可以正常工作;但是当我尝试将一个kendo控件绑定到渲染窗口中的remote数据源时,它拒绝获取。

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

我已准备好 JSBIN 来显示此行为(或缺少此行为)

JSBIN EXAMPLE

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

1 个答案:

答案 0 :(得分: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