我有一个编辑按钮,在Kendo网格onSave事件中,当我连续更改某些内容时会触发。现在我想在更新行时访问dataItem值但由于某种原因它始终为null,我做错了什么?我在下拉菜单中访问值没有问题,但我也需要隐藏值。
JS
function onSave(e) {
if (e.model.StatusIdD) {
e.model.StatusIdD = 0;
var currentlySelectedValue = $(e.container).find('#StatusIdD').data("kendoDropDownList").value();
var dataItem = this.dataItem($(e.target).closest("tr"));
var bojaTeksta = dataItem.BojaTeksta;
console.log(bojaTeksta);
e.model.set('StatusIdD', currentlySelectedValue);
e.model.set('Status', $(e.container).find('#StatusIdD').data("kendoDropDownList").text());
//e.model.set('BojaPozadine', currentlySelectedValue);
//e.model.set('BojaTeksta', currentlySelectedValue);
}
}
网格 - 简化
...
columns.Bound(p => p.BojaTeksta).Hidden(true);
columns.Bound(p => p.BojaPozadine).Hidden(true);
...
.Events(e => e.Remove("onRemove").Save("onSave"))
ANSWER
我设法用selectedItem而不是dataItem获取数据(当你单击命令按钮时自动选择一行)
var grid = $("#Grid" + '@guid').data("kendoGrid");
var selectedItem = grid.dataItem(grid.select());
var bojaTeksta = selectedItem.BojaTeksta;
var bojaPozadine = selectedItem.BojaPozadine;
console.log(bojaTeksta);
console.log(bojaPozadine);
答案 0 :(得分:1)
获取隐藏值不应该有任何问题。
首先确保设置了BojaTeksta。通过检查生成的html。
它应该类似于:
<td role="gridcell" style="display:none">123</td>
检查您是否从dataItem获取其他值。未隐藏的值。
如果没有尝试在事件中使用currentTarget而不是target:
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));