Ошибка jqxGrid в selectrow "Невозможно прочитать свойство '0' из неопределенного" - PullRequest
0 голосов
/ 26 сентября 2018

Когда я использую функцию «selectrow» из jqxGrid, я получаю сообщение об ошибке «Не могу прочитать свойство 0» из неопределенного. Я реализовал ее, как описано в jqGrid Api . Ошибка возникает только в том случае, еслия добавляю вложенную сетку, без нее она работает нормально. Проблема возникает в additionalOptions(), вызываемом в rendered: части сетки.

Кодовая часть, где возникает ошибка:

if(rowId){
var rowindex = grid_container.jqxGrid('getrowboundindexbyid', rowId);//Die Zeilen-Nr. anhand der übergebenen ID feststellen
try{
    grid_container.jqxGrid('selectrow', rowindex);
}
catch(ex){
    //the error "Cannot read property '0' of undefined" occurs here
}

}

Если я добавлю пустой улов (как указано выше), строка будет выделена, и все, кажется, работает нормально, но это не является удовлетворительным решением для меня. rowindex всегда содержит ожидаемое значениеи ничего не изменится, если я установлю фиксированное значение для тестов.

Ранее я вызывал часть selectrow после создания сетки и не получил эту ошибку. Мне пришлось переключить ее на rendered часть из-за другой ошибки.

jqxGrid имеет следующие настройки:

grid_container.jqxGrid({
width: totalWidth,
source: dataAdapter,
columnsresize: options.columnsResize != null ? options.columnsResize : true,
columnsreorder: true,
altrows: true,//alternating rowcolors
pagesize: options.rowsPerPage, //specifies the max row amount
pageable: options.pageable===false ? false : true, //needed to make grid pageable
pagerrenderer: pagerrenderer, //overwrites the default page handler
pagerheight: paging_height,
virtualmode: true, //use server side handling
rendergridrows: function (obj) { //needed for virtualmode - data coming from dataAdapter now
    return dataAdapter.records;
},
rendered: function () {
    additionalOptions();
    scrollToLastSelectedRow();
},
columns: columns,
columnsheight: options.containsMultiHeaderColumn ? 35 : 25,
sortable: true,
sorttogglestates: 1,
showsortcolumnbackground: false,
enablebrowserselection: false,
verticalscrollbarstep: 60,
showfilterrow: false,
filterable: true,
autoshowfiltericon: true,
showfiltercolumnbackground: true,
theme: 'myTheme',
rowsheight: rowsHeight,
rowdetails: !!options.containsNestedGrid,//includes nested grids if true
showaggregates: options.showaggregates
});

содержит следующую вложенную сетку.

grid_container.jqxGrid({
width: totalWidth,
source: dataAdapter,
columnsresize: options.columnsResize != null ? options.columnsResize : true,
columnsreorder: true,
altrows: true,//alternating rowcolors
pagesize: data.length,
virtualmode: true, //use server side handling
rendergridrows: function (obj) { //needed for virtualmode - data coming from dataAdapter now
    return dataAdapter.records;
},
rendered: function () {
    additionalOptions();
    scrollToLastSelectedRow();
},
columns: columns,
columnsheight: 25,
sortable: true,
sorttogglestates: 1,
showsortcolumnbackground: false,
enablebrowserselection: false,
verticalscrollbarstep: 60,
showfilterrow: false,
filterable: true,
autoshowfiltericon: true,
showfiltercolumnbackground: true,
theme: 'myTheme',
rowsheight: rowsHeight
});

Возможно, что-то естьнеправильно с моей конфигурациейИон или я пропустил что-то еще?Спасибо.

...