2013-08-02 2 views
0

У меня есть сетка кендо, в которой сетка деталей создается для каждой строки при нажатии на строку.Автоматический выбор строки в сетке кендо

Каждая строка в основной сетке имеет столбец, например. LifeTimeId пользователя.

Когда загружается сетка, есть ли способ автоселекции строки в сетке с помощью конкретного LifeTimeId?

Я пытался следующую логику в «dataBound'event:

function() 
{ 
    var e1 = $("grid"); 
    var grid = e1.data("kendoGrid"); 
    var row = grid.table.find('tr[data-LifeTimeNumber="T006"]') 
    grid.select(row); 
} 

Я надеялся, что это будет стрелять событие изменения сетки. В событии изменения у меня есть логика для извлечения других данных из этой выбранной строки и выполнения некоторой бизнес-логики.

Этот подход никогда не работал, поскольку приведенный выше код в событии dataBound не смог выбрать строку.

Любые подсказки о том, что можно сделать для решения этой проблемы автоматического выбора конкретной строки в сетке при ее загрузке?

ответ

0

Вы можете использовать метод expandRow в функции, которую вы используете в dataBound.

E.g.

function() 
{ 
    var e1 = $("grid"); 
    var grid = e1.data("kendoGrid"); 
    var row = grid.table.find('tr[data-LifeTimeNumber="T006"]'); 
    this.expandRow(row); 
} 

Я создал пример здесь: http://jsfiddle.net/amomsen/6GgAu/6/

Смотреть больше расширить строку: http://docs.kendoui.com/api/web/grid#methods-expandRow

0

Вы можете попробовать запустить функцию в SetTimeout сразу после инициализации сетки. Работает для меня.

0
var row = $("#grid").data("kendoGrid").table.find('tr[data-uid='+uid+']'); 
$(row).addClass('k-state-selected'); 

Добавление класса в конкретную строку в событии dataBound будет работать так, как вы хотите.

+0

Существует явный метод API (grid.select()), поэтому полагаться на определенный класс (который может измениться в будущих выпусках) может быть не лучшей идеей –

Смежные вопросы