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.com/web/grid/editing-custom.html
ありがとう。ボブ