Я пытаюсь реализовать страничный пейджинг на стороне сервера в JQGrid. Может ли любой орган помочь мне в том, как его достичь. В настоящее время клиентская сторона отлично работает в моей сетке, но хочет изменить ее на серверную.Серверный пейджинг на стороне сервера в JQGrid
ответ
Взято из: http://yassershaikh.com/how-to-use-jqgrid-with-asp-net-mvc/
Если вы работали с JqGrid, прежде чем не будет, без сомнения, знакомы с параметрами по умолчанию, переданных любой АЯКС запросу: «страницы», «строк», «sidx» & «Sord» , Эти параметры соответствуют текущей странице, записям на странице, столбцу сортировки и порядку сортировки соответственно.
Снимок экрана, приведенный ниже, поможет вам лучше понять это.
Таким образом, чтобы справиться с этим я подготовил класс под названием «JqGridObject».
public class JqGridObject
{
public string Page { get; set; }
public int PageSize { get; set; }
public string SortColumn { get; set; }
public string SortOrder { get; set; }
public List<Fruit> Data { get; set; }
}
public class Fruit
{
public int Id { get; set; }
public string Name { get; set; }
}
Отправить JSON данные из контроллера, используя этот JqGridObject класс
public ActionResult GetJqGridData(string page, string rows, string sidx, string sord)
{
var jqGridData = new JqGridObject()
{
Data = GetSomeSampleData(),
Page = page,
PageSize = 3, // u can change this !
SortColumn = sidx,
SortOrder = sord
};
return Json(jqGridData, JsonRequestBehavior.AllowGet);
}
public List<Fruit> GetSomeSampleData()
{
return new List<Fruit>
{
new Fruit{Id = 1, Name = "Apple" },
new Fruit{Id = 2, Name = "Melon" },
new Fruit{Id = 3, Name = "Orange" },
new Fruit{Id = 4, Name = "Grapes" },
new Fruit{Id = 5, Name = "Pineapple" },
new Fruit{Id = 6, Name = "Mango" },
new Fruit{Id = 7, Name = "Bannana" },
new Fruit{Id = 8, Name = "Cherry" }
};
}
JqGrid JQuery вызова.
<script type="text/javascript">
$(document).ready(function() {
$("#myGrid").jqGrid({
url: '@Url.Action("GetJqGridData")',
datatype: 'json',
myType: 'GET',
colNames: ['Id', 'Name'],
colModel: [
{ name: 'Id', index: 'Id' },
{ name: 'Name', index: 'Name' }
],
jsonReader: {
root: 'Data',
id: 'id',
repeatitems: false
},
pager: $('#myPager'),
rowNum: 5,
rowList: [2, 5, 10],
width: 600,
viewrecords: true,
caption: 'Jqgrid MVC Tutorial'
});
});
</script>
<table id="myGrid"></table>
<div id="myPager"></div>
я видел много вариантов на стороне сервера пагинацией в jqgrid, но ни один из них не являются эффективными для наших требований.
что я сделал - это положить LIMIT: startLimit,: endLimit в строке запроса.
Включить и отключить nextPager и prevPager на основе записей.
Предположим, я хочу показать 5 записей на каждой странице,
var startLimit=0;
var endLimit=5;
, когда пользователь нажимает на "NEXT",
$("#next_pager").click(function() {
startLimit = startLimit+ endLimit;
// here comes your AJAX call with passing two parameter(startLimit,endLimit)
});
, когда пользователь нажимает на "Предыдущий",
$("#prev_pager").click(function(){
if (startLimit == 0)
{
$("#prev_pager").addClass("ui-state-disabled"); //disable previous pager icon
}
else
{
startLimit = startLimit - endLimit;
}
});
Изменение номеров страниц:
Initialize одна переменная: var pageInputValue=1;
, когда пользователь нажимает на "NEXT",
$(".ui-pg-input").val(eval(parseInt(pageInputValue)+1));
pageInputValue = eval(parseInt(pageInputValue)+1);
, когда пользователь нажимает на "Предыдущий",
$(".ui-pg-input").val(eval(parseInt(pageInputValue)-1));
pageInputValue = eval(parseInt(pageInputValue)-1);
Чтобы изменить вид записей @ Botton Справа:
if(eval(startLimit+endLimit) > result)
{
$(".ui-paging-info").text("View "+eval(startLimit+1) +" - "+result+" of "+result);
}
else
{
$(".ui-paging-info").text("View "+eval(startLimit+1) +" - "+eval(startLimit+endLimit)+" of "+result);
}
, если вы считаете это полезным, подсказать.
- 1. jqgrid пейджинг на стороне сервера
- 2. Пейджинг на стороне сервера в сетке Кендо?
- 3. jqGrid двойной пейджинг (как на стороне клиента, так и на стороне сервера)
- 4. jqgrid Java на стороне сервера подкачки
- 5. Jqgrid не инициирует вызов на стороне сервера
- 6. Переопределение параметров JQGrid defind на стороне сервера
- 7. Пейджинг на стороне сервера с фильтрацией и сортировкой
- 8. JAVA: нужен серверный создатель cookie стороне сервера
- 9. Пейджинг не работает на динамически заполненном JqGrid
- 10. Изменения на стороне сервера на стороне сервера на стороне сервера
- 11. Серверный прослушиватель на стороне сервера: dataScroller (RF 4.1)
- 12. надежный серверный механизм динамической формы на стороне сервера для ASP.NET
- 13. Пользовательский пейджинг вне jqgrid
- 14. JqGrid поиск на стороне клиента
- 15. Подкачка на стороне сервера
- 16. Как сделать серверный пейджинг в datatable?
- 17. Производительность Разница между клиентской стороной jqgrid и стороне сервера jqGrid
- 18. Функция на стороне сервера вызывается только один раз в jqGrid
- 19. Код на стороне клиента на серверный код
- 20. Как можно использовать сортировку и пейджинг на стороне сервера с помощью Azure Mobile Services
- 21. ответ на серверный ответ на серверный сервер
- 22. jqgrid. Пейджинг вообще не отображается
- 23. Разбор DOM на стороне сервера
- 24. jqGrid - На стороне сервера подкачки - jsonstring - показывая неправильный/нет данных
- 25. Запрос на стороне сервера JqGrid конфликтует с поиском
- 26. Как выполнить проверку на стороне сервера с помощью Jqgrid?
- 27. Событие редактирования Jqgrid для отображения результата проверки на стороне сервера
- 28. jqgrid: как отправить информацию поиска оператора на стороне сервера
- 29. Наращивание страниц на стороне клиента с помощью jqGrid
- 30. вводящая в заблуждение документация jqgrid: сортировка на стороне клиента, но подкачка на стороне сервера
моя проблема в том, когда я нажимаю на следующую страницу на JQGrid. Я получаю страницу = 1 у моего обработчика (я на странице 1) вместо 2. Как я получу точное значение страницы, которое вызывается, а не предыдущая страница –
@ Yasser: Отличный ответ, но, пожалуйста, вы можете ответить на вопрос Рохита?У меня такая же проблема. –