1

Durandal JS フレームワークと剣道 UI を使用します。

私のグリッドでは、portfolioName と InstrumentName の両方にテキスト フィールドを表示させたいのですが、下の SAVE イベントを押すと、ID フィールドを取得したいと考えています。

私が今抱えている問題は、INSERT モードに移動して金融商品/ポートフォリオのドロップダウン リストから選択すると、グリッドに ID が入力されることです。ただし、TEXTを表示したい。たとえば、InstrumentId と InstrumentName です。

いくつかのドロップダウン エディターを使用して、ViewModel コードで次のように定義されたグリッドがあります。

positGrid = $("#positGrid").kendoGrid({
        dataSource: datasource,         
        columnMenu: false,
        toolbar: [
            { name: "create", text: "Add" }
        ],
        columns: [{
            field: "id", hidden: true,
        },
        {
            field: "portfolioName", title: "Portfolio Name",
            editor: portfolioDropDownEditor, template: "#=portfolioName.name#"
        },
        {
            field: "InstrumentName",
            width: "220px",
            editor: instrumentsDropDownEditor, template: "#=InstrumentName#",
        },
           save: function (e) {             // inline row save event                 
            InsertUpdatePos(e)
        },
     });

ドロップダウン エディター機能は次のとおりです。

      // PULL PORTFOLIO LISTING FROM SERVER AND DISPLAY IN DROPDOWN LIST
function portfolioDropDownEditor(container, options) {

    var pfItems = [{         // FOR TESTING ONLY...
        "pfName": "1"
    }, {
        "pfName": "2"
    }];

    //var input = $('<input id="portfolioName" name="portfolioName">');
    var input = $('<input required id="portfolioName" data-text-field="name" data-value-field="id"> data-bind="value:' + options.field + '" ');
    input.appendTo(container);

   // debugger;


    input.kendoDropDownList({
        dataTextField: "name",
        dataValueField: "id",
        dataSource: {
            type: "json",
            transport: {
                read: "/api/breeze/GetPortfolios"
            },
            pageSize: 6,
        },
        optionLabel: "Choose a portfolio",
    }).appendTo(container);
}

この剣道サンプルをガイドとして使用していますが、まだ機能しません: http ://demos.kendoui.c​​om/web/grid/editing-custom.html

ありがとう。ボブ

4

0 に答える 0