jqGrid возвращает только записи, определенные в rowNum, если используется loadonce: true - PullRequest
5 голосов
/ 28 января 2012

Это нормально, или я что-то упустил?

Если я установлю 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 ]

3 голосов
/ 29 января 2012

Спасибо, Джонатан.Как я пропустил эту демонстрацию:)

Я добавил, что colModel rowTotal: 2000, значение -1 не работает, это покажет 2000 recs

, затем добавьте ниже к моему коду сервера

$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;
1 голос
/ 29 января 2012

Если вы используете loadonce: true, сервер должен вернуть все строки.данные должны быть отсортированы в соответствии с параметрами sortname и sortorder, которые будут отправлены на сервер в виде sidx и sord.

. Будет отображена первая страница возвращенных данных.Вы по-прежнему сможете использовать локальное разбиение на страницы, сортировку и фильтрацию (поиск) данных.

Может быть важно определить параметр sorttype , чтобы разрешить правильную локальную сортировку данных.

Если проблема не устранена, добавьте свой вопрос в ответ XML с сервера.Таким образом, другой читатель вашего вопроса сможет воспроизвести проблему.

Последнее замечание: вы используете очень странные значения для pginput и pgtext параметров jqGrid.Вам лучше придерживаться типов опций, описанных в документации .

1 голос
/ 28 января 2012

rowNum:5, означает, что сетка будет использовать только 5 строк.

loadonce: true означает, что он будет загружаться только один раз. Также отключает пейджер.

Исходя из этой конфигурации, эта сетка будет использовать только 5 строк, и, поскольку она больше не будет загружаться с сервера, она всегда будет такой же 5.

Здесь ссылка на вики, которая содержит последнюю версию документации по опциям: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options

0 голосов
/ 30 января 2013

{ rowNum: 0 } для установки безлимитных строк ...

...