0

データのグリッドを表示するためにノックアウト js kogrid を使用し始めた Asp.Net MVC Web サイトがあります。

ある特定のグリッドについて、ユーザーが電子メール アドレス列を編集できるようにしたいと考えています。保存ボタンをクリックすると、編集された値がデータベースに保持されます。

グリッドを正常に表示でき、行を選択すると、ユーザーは必要なセルに入力できます。私の問題は、変更されたセル値を参照する方法がわからないことです。

私のグリッドオプションの定義は次のとおりです。

var emailCellTemplate = '<div><input type=\"text\" data-bind=\"visible: $parent.selected(), value: $parent.entity[$data.field]" /><span data-bind=\"visible: !$parent.selected(), text: $parent.entity[$data.field]\"></span></div>'
this.gridOptions = {
    height: 200,
    afterSelectionChange: function () { return true; },
    data: self.workflowRules,
    enablePaging: true,
    pagingOptions: self.pagingOptions,
    filterOptions: self.filterOptions,
    selectWithCheckboxOnly: true,
    selectedItems: self.selected,
    canSelectRows: true,
    displaySelectionCheckbox: true,
    columnDefs: [{ field: 'ReceivePortName', displayName: 'Receive Port', width: 130 },
                { field: 'MessageType', displayName: 'Message Type', width: 400 },
                { field: 'TriggerSource', displayName: 'Source', width: 150 },
                { field: 'TargetEmailAddress', displayName: 'Email', width: 180, cellTemplate: emailCellTemplate },
                { field: 'AssignedToName', displayName: 'Assigned To', width: 140 },
    ]
};

$parent.entity[$data.field]は、データベースからロードされた値を選択するのに最適ですが、編集された値は得られません。[データベースに保存] ボタンがクリックされたときに実行される js コードにブレークポイントを配置すると、編集された値がWorkflowRules.TargetEmailAddressに表示されますが、それにバインドする方法がわかりません。

ここで説明するのに役立つプランクを作成しました: https://plnkr.co/edit/Ibc0WZwyb4melgNDzcUo

emailCellTemplate を設定する方法を教えてください。

4

1 に答える 1