2013-05-14 2 views
0

Я пытаюсь получить номер строки в сетке данных dojo. Функция rowIndex не помогла бы мне, потому что мне нужно «номер строки» и «номер строки» при сортировке.Dojo Datagrid - Получить номер строки

Сценарий:

Я хотел бы установить фокус на одной конкретной строке и этот фокус должен остаться даже после сортировки. Но если я использую код ниже, он не будет выбирать правильную строку.

Например, индекс 1 находится на 5-й строке после сортировки. Тем не менее, по-прежнему остается e.item.id как 1, ожидается, является 5.

calendar.on("itemClick", function (e) 
{ 
    MyGrid.doclick({ rowIndex: e.item.id }); 
    MyGrid.scrollToRow(e.item.id); 
}); 

Кроме того, я также пытался ...

calendar.on("itemClick", function (e) 
{ 
    var identity = MyGrid._by_idx[e.item.id].idty; 

    var gridItem = MyGrid.getItem(identity); 
    var gridItemIndex = MyGrid.getItemIndex(gridItem); 

    MyGrid.doclick({ rowIndex: gridItemIndex }); 
    MyGrid.scrollToRow(e.item.id); 
}); 

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

Желания, Сантош

+0

Я сожалею, я не могу понять, что вы имеете в виду на то время как вы используете calender.on. вы пытаетесь выбрать строку в сетке на основе фильтра календаря? – user1445117

+0

Привет, спасибо за ответ. У меня есть как gridItem, так и calendarItem. Я хочу выбрать правильный элемент gridItem, когда я нажимаю на соответствующий элемент calendarItem. Оба они передаются с идентификатором. Таким образом, по щелчку элемента календаря я хотел бы выбрать связанный объект строки. –

+0

Я предполагаю, что gridItem имеет тот же магазин, что и CalnderItem, если да, то я не уверен, что элемент сетки и элементы индекса элемента calnder одинаковы. можете ли вы объяснить свой код больше или поместить пример в JSfiddle. – user1445117

ответ

0

Хорошо, я понял ответ.

GetGridItemIndexByGridItem = function (gridItem) { 
    var indexLength = MyGrid._by_idx.length; 
    var element = null; 
    var gridItemIndex = -1; 

    for (var i = 0; i < indexLength; i++) { 
     element = MyGrid._by_idx[i]; 
     if (element.item.Guid == gridItem.Guid) { 
      gridItemIndex = i; 
     } 
    } 
    return gridItemIndex; 
} 

Пожелания

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