jqGrid возвращает только записи, определенные в rowNum, если используется loadonce: true
Это нормально или я что-то упускаю?
Если я задаю loadonce: true
, Моя сетка возвращает только 5 записей.
Но если я изменю его на loadonce: false
, сетка получит все записи
Мой код приведен ниже.
$("#leave-detail-grid").jqGrid({
url:'grid/grid_leave_detail.php',
datatype: 'xml',
mtype: 'GET',
colNames:['Date','Day','Approver','Leave Type','Status','Purpose | Reason'],
colModel :[
{name:'start_date', index:'start_date', width:80, editable:false, align:"left", editrules:{required:true}},
{name:'day', index:'day', width:80, editable:false, align:"left", editrules:{required:true}},
{name:'sup', index:'sup', width:130, editable:false, align:"left", editrules:{required:true}},
{name:'desc', index:'desc', width:130, editable:false, align:"left", editrules:{required:true}},
{name:'status', index:'status', width:80, editable:false, align:"center", editrules:{required:true}},
{name:'purpose', index:'purpose', width:180, editable:false, align:"left", editrules:{required:true}}
],
height: 'auto',
pager: '#leave-detail-pager',
pgbuttons: true,
pginput: 'Yes',
pgtext: 'Yes',
rowNum:5,
rowList:[20,40,100,200,400],
sortname: 'start_date',
sortorder: 'asc',
loadonce: true, // to enable sorting on client side
viewrecords: true,
gridview: true,
caption: 'Search Purpose'
});
$("#leave-detail-grid").jqGrid('navGrid',"#leave-detail-pager",
{edit:false,add:false,del:false,search:true},
{zIndex:5234},{zIndex:5234},{zIndex:5234},{zIndex:5234}
);
4 ответа:
Спасибо Джонатан. Как я пропустил эту демонстрацию:)
Я добавляю colModel
rowTotal: 2000,
значение -1 не работает, это покажет 2000 RECЗатем добавьте следующее в мой серверный код
$totalrows = isset($_REQUEST['totalrows']) ? $_REQUEST['totalrows']: false; if($totalrows) { $limit = $totalrows; }
И чтобы загрузить все записи, нам нужно настроить код сервера, чтобы переопределить параметр rowTotal.
$result = mysql_query("SELECT COUNT(*) AS count FROM leaveform WHERE emp_id='$emp_id' AND company_id='$company_id'"); $row = mysql_fetch_array($result,MYSQL_ASSOC); $count = $row['count']; $totalrows = $count; $limit = $totalrows;
rowNum:5,
означает, что сетка будет использовать только 5 строк.
loadonce: true
означает, что он будет загружаться только один раз. Он также отключает пейджер.Исходя из этой конфигурации, эта сетка будет использовать только 5 строк, и поскольку она больше не будет загружаться с сервера, она всегда будет одной и той же 5.
Здесь ссылка на Wiki, которая содержит последнюю документацию по опциям: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options
При использовании
loadonce: true
сервер должен возвращать все строки. данные должны быть отсортированы по параметрамsortname
иsortorder
, которые будут отправлены на сервер в видеsidx
иsord
.Отобразится первая страница возвращенных данных. Вы по-прежнему сможете использовать локальную подкачку, сортировку и фильтрацию (поиск) данных.
Может быть важно определить параметр sorttype, чтобы обеспечить правильную локальную сортировку данных.
Если у вас еще есть проблема вы должны добавить свой вопрос с ответом XML от сервера. Так что другой читатель Вашего вопроса сможет воспроизвести проблему.
Последнее замечание: вы используете очень странные значения дляpginput
, иpgtext
вариантов jqGrid. Вы должны лучше держать типы опций, описанных в документации.