基本上我有一个Kendo UI Dropdownlist作为我的第一个名为“instrumentName”的网格列 在弹出编辑模式下,我可以在下拉列表中看到正确的instrumentName,但是当我更改值时会出现一个问题:
一旦我选择了新仪器,仪器ID就会显示在网格上(在后台)。更新的INSTRUMENT NAME应出现在网格上。
一旦我点击更新,它不会显示仪器名称,而是显示仪器ID(这是一个数字)。
一些代码段:
instrDropDown.value(e.model.instrumentId);
nodeGrid = $("#curvesGrid").kendoGrid({
dataSource: new kendo.data.DataSource({ ... });
columns: [
{
field: "instrumentName",
editor: instrumentsDropDownEditor, template: "#=instrumentName#"
},
{
field: "instrumentTypeName"
},
edit: function(e){
var instrDropDown = $('#instrumentName').data("kendoDropDownList");
instrDropDown.list.width(350); // widen the INSTRUMENT dropdown list
if (!e.model.isNew()) {
instrDropDown.value(e.model.instrumentId);
}
}
});
这是我的Dropdown的模板编辑器:
function instrumentsDropDownEditor(container, options) {
// INIT INSTRUMENT DROPDOWN !
var dropDown = $('<input id="instrumentName" name="instrumentName">');
dropDown.appendTo(container);
dropDown.kendoDropDownList({
dataTextField: "name",
dataValueField: "id",
dataSource: {
type: "json",
transport: {
read: "/api/breeze/GetInstruments"
},
},
pageSize: 6,
//select: onSelect,
change: function () { },
close: function (e) {
},
optionLabel: "Choose an instrument"
}).appendTo(container);
}
我是否需要在更改Dropdown时做一些特别的事情?
感谢。 鲍勃
答案 0 :(得分:0)
dataFieldValue
将保存为DropDownList
的值。如果您希望保存name
,则应将dataValueField
定义为name
。
关于后台更新,这是默认行为,因为这是一个ObservableObject,因此会自动传播更改。如果您不想这样做,您可能应该尝试使用伪变量进行下拉,并在save
事件中将其复制到实际字段。你真的需要这个吗?