ОБНОВЛЕНО: JQGrid с пейджером, идентификатор таблицы последней строки, повторяющийся один раз при увеличении номера строки

У меня (странная?) Проблема с JQGrid. Я заполняю сетку локальным XML. Я установил JQGrid с rowNum: 10 и rowList: [10,20,30,40,50]. У меня 12 записей. Данные (изначально 10) отлично загружаются в сетку, а идентификаторы таблиц: [«1», «2», «3», «4», «5», «6», «7», «8», «9», «10»]. Когда я меняю rowList на 20, идентификаторы таблиц будут ["1", "2", "3", "4", "5", "6", "7", "8", "9", " 10 "," 10 "," 11 "]. Число 10 отображается дважды. Кто-нибудь видел эту ошибку раньше? Заранее спасибо.

Версия JQuery: 1.4.2
Версия jqGrid: 3.8.1

Фрагменты кода
Вот XML-код, который у нас есть:

‹? Xml version = '1.0' encoding = 'utf-8'?> ‹Root> ‹rows> ‹row> ‹cell> prasanth ‹/cell> ‹cell> kumar ‹/cell> ‹/row> ‹row>‹ ячейка> прасант ‹/cell> ‹cell> кумар ‹/cell> ‹/row> ‹row> ‹cell> прасант ‹/cell> ‹cell> кумар ‹/cell> ‹/row> ‹row> ‹cell> прасант ‹ / cell> ‹cell> kumar ‹/cell> ‹/row> ‹row> ‹cell> prasanth ‹/cell> ‹cell> kumar ‹/cell> ‹/row> ‹row> ‹cell> prasanth ‹/cell> ‹ cell> kumar ‹/cell> ‹/row> ‹row> ‹cell> prasanth ‹/cell> ‹cell> kumar ‹/cell> ‹/row> ‹row> ‹cell> prasanth ‹/cell> ‹cell> kumar ‹ / cell> ‹/row> ‹row> ‹cell> прасант ‹/cell> ‹cell> кумар ‹/cell> ‹/row> ‹row> ‹cell> прасант ‹/cell> ‹cell> кумар ‹/cell> ‹ / row> ‹row> ‹cell> prasanth ‹/cell> ‹cell> kumar ‹/cell> ‹/row> ‹/rows> ‹/root>
JQGrid определяется следующим кодом:


    jQuery("#tableGrid").jqGrid(
    { 
        datatype: "xmlstring",
        datastr : mystr, 
        height: 'auto', 
        rowNum: 10, 
        rowList: [10,20,30,40,50], 
        colNames:['First Name', 'Last Name'], 
        colModel:[ {name:'firstname', width:7, sorttype:"string"},
                   {name:'lastname', width:7, sorttype:"string"}       
                 ], 
        pager: "#pager", 
        viewrecords: true, 
        sortname: 'firstname', 
        autowidth:true,
        grouping:false
    }); 

Когда я проверяю firebug после изменения списка строк на 20, строки создаются, как показано ниже:

<tr id="9" class="ui-widget-content jqgrow ui-row-ltr" role="row">
<tr id="10" class="ui-widget-content jqgrow ui-row-ltr" role="row">
<tr id="10" class="ui-widget-content jqgrow ui-row-ltr" role="row">


Обратите внимание, что ‹tr id =" 10 "> повторяется. Это происходит, когда я устанавливаю rowNum как 10. Если я изменяю rowNum на 3, ‹tr id =" 3 "> будет создан дважды.


person Prasanth Kumar S    schedule 12.09.2011    source источник
comment
Вы должны включить полную информацию, необходимую для воспроизведения вашей проблемы: требуются данные XML и код JavaScript, которые создают и заполняют jqGrid.   -  person Oleg    schedule 12.09.2011


Ответы (1)


Источник проблемы в том, что вы не включаете id информацию в опубликованные вами данные. Кроме того, вы используете «ретро» версии jQuery и jqGrid. Я рекомендую вам использовать jQuery 1.6.2 и jqGrid 4.1.2. Начиная с версии 3.8.2 был введен метод $ .jgrid.randId (), который в настоящее время используется во многих местах. Надеюсь, что проблема уже исправлена ​​в последней версии jqGrid.

В любом случае, если вы добавите атрибут id к элементу <row> ваших данных, проблема не должна существовать, даже если вы продолжите использовать старую версию jqGrid.

person Oleg    schedule 16.09.2011
comment
Спасибо Олег, установив атрибут id для ‹row›, проблема решена. Я обновлю версию jQuery и jqGrid и посмотрю, поможет ли это. - person Prasanth Kumar S; 19.09.2011