如何通过onSave事件从Kendo网格中获取隐藏值

时间:2013-08-02 10:05:19

标签: javascript asp.net-mvc-3 events grid kendo-ui

我有一个编辑按钮,在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);

1 个答案:

答案 0 :(得分:1)

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

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

它应该类似于:

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

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

如果没有尝试在事件中使用currentTarget而不是target:

var dataItem = this.dataItem($(e.currentTarget).closest("tr"));