0

我有一个编辑按钮,并且在 Kendo 网格中的 onSave 事件中,当我连续更改某些内容时会触发该事件。现在我想在更新行时访问 dataItem 值,但由于某种原因它总是为空,我做错了什么?我在下拉菜单中访问值没有问题,但我也需要隐藏值。

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"))

回答

我设法使用 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);
4

1 回答 1

1

获取隐藏值应该不会有任何问题。

首先确保 BojaTeksta 已设置。通过检查生成的 html。

它应该看起来像:

<td role="gridcell" style="display:none">123</td>

检查您是否从 dataItem 获取其他值。未隐藏的值。

如果不尝试在事件上使用 currentTarget 而不是 target:

var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
于 2013-08-02T11:44:08.233 回答