1

一度このトピックを作ったのですが、ちょっと情報がわかりづらくてあまり参考にならなかったので、一日かけてJSBINのサンプルを作ってから再挑戦中です。

KendoUI を使用してビュー モデルを作成し、その中にいくつかのアイテムを作成している状況があり、描画されたサブアイテムをクリックすると、KendoWindowそれらをより具体的に編集できるように開きます。

ただ、コンセプトに問題があるdataSourceと思います。dataSource自分のページにバインドしようとすると、正常に動作します。remoteしかし、レンダリングされたウィンドウ内で剣道コントロールをデータソースにバインドしようとすると、取得が拒否されます。

ローカルデータ、ハードコードされたデータのみにバインドすると機能します。だから私はdropdownlistが働いていることを知っています。しかし、リモート データにバインドできるようにする必要があります。

この動作 (またはその欠如) を示すためにJSBINを用意しました

JSBIN の例

どんな助けでも大歓迎です。動作を確認するには、 ボタンをクリックして を選択しCreate Socket Rail、 を使用しNumericTextBoxてサイズを 0 より大きい任意の数値に拡大してから、描画されたボックスの 1 つをクリックします。

4

1 に答える 1

1

イベントで kendoDropDownList を作成するkendoWindow.activate(または少なくとも 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 に答える