2012-02-18 2 views
0

Я ищу способ иметь jqgrid по умолчанию на последней странице сетки при загрузке страницы. Я хочу, чтобы порядок сортировки оставался восходящим, а первая страница сетки - первой. Я использую что-то вроде этого:jqgrid по умолчанию на последней странице

$(function(){ 
    $("#list").jqGrid({ 
    url:'visitors.php', 
    datatype: 'xml', 
    mtype: 'GET', 
    colNames:['timestamp', 'user','last_visit','last_purchase','purchase_amount'], 
    colModel : gridColModel, 
    pager: '#pager', 
    rowNum:20, 
    rowList:[10,20,30], 
    sortname: 'timestamp', 
    sortorder: 'asc', 
    viewrecords: true, 
    gridview: true, 
    autowidth: true, 
    editurl: 'edit.php', 
    }) 
    .navGrid('#pager',{edit:false,add:false,del:false,search:false}) 
}); 

ответ

0

Кажется, он уже ответил в moving to other page programmatically

Надеются, что это может быть использовано в вашем случае.

+0

Спасибо Vanga, что действительно решает мою проблему, если я программным образом нажимаю идентификатор последней кнопки. Я надеялся на вариант по умолчанию, поэтому мне не пришлось бы перезагружать сетку, но это работает для меня. – keitwirik

0

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

При инициализации вашего jqGrid вам нужно сделать:

$('#list').jqGrid({ 
    ... 
    page: 'last' 
    ... 
}); 

Это будет отправить страницу = последнюю на начальной загрузке данных. Так внутри моего метода запроса данных (на стороне сервера), у меня есть следующие:

 if (page == "last") 
     { 
      iPage = (int)Math.Ceiling(results.Count/(double)rows); 
     } 

Теперь вы знаете, что последняя страница будет, и может пропустить нужное количество строк:

results.Skip(rows * (iPage - 1)).Take(rows) 

As Я использую json, а не XML, а затем возвращаю типичную структуру (строки, страницу, общие страницы, общие записи) как json.

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