Я нашел немного более элегантный способ сделать это, заимствуя ответ Ммутилвы.
Начните с помещения скрытого столбца и события изменения таким же образом:
.DataKeys(keys => keys.Add(o => o.Id))
.Selectable()
.Columns(columns =>
{
columns.Bound(o => o.Id).Hidden();
columns.Bound(o => o.Name);
columns.Bound(o => o.Description);
})
.ClientEvents(events => events.OnRowSelect("onRowSelect"))
Но тогда в функции javascript есть лучший способ фактически выбрать объект, а затем скрытую строку:
function onRowSelect(e) {
var grid = e.sender;
var currentitem = grid.dataItem(this.select());
var Id = currentitem.Id;
//then do whatever with the ID variable
}
Источник