我想在JQGrid中實現服務器端分頁。任何機構可以幫助我如何實現它。目前客戶端在我的網格中工作正常,但希望將其更改爲服務器端。JQGrid服務器端分頁
2
A
回答
1
來自:http://yassershaikh.com/how-to-use-jqgrid-with-asp-net-mvc/
如果您有jqGrid的工作,你會毫無疑問熟悉傳遞給任何Ajax請求的默認參數才道:「網頁」,「行」,「SIDX」 &「SORD」 。這些參數分別對應於當前頁面,每頁記錄,排序列和排序順序。
下面的截圖會幫助你更好地理解這一點。
因此,要處理這個我已經準備了一個名爲「JqGridObject」類。從控制器使用這個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的呼叫
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數據。
<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>
0
我看到jqGrid的服務器端分頁許多選擇,但他們都不是有效的爲我們的要求。
我所做的是在查詢字符串中放入LIMIT:startLimit,:endLimit。
根據記錄啓用和禁用nextPager和prevPager。
假設我想顯示5所記錄的每一頁,
var startLimit=0;
var endLimit=5;
當用戶點擊 「下一步」,
$("#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;
}
});
改變頁碼:
初始化一個變量: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);
要更改查看記錄@波頓右:
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. jqGrid的Java服務器端分頁
- 3. 在服務器端jqgrid分頁
- 4. jqGrid的客戶端排序服務器端分頁
- 5. 服務器端JSON分頁
- 6. sql:sqlite:服務器端分頁
- 7. Ember.js服務器端分頁
- 8. EmberJS服務器端分頁
- 9. JQGrid服務器端分頁不起作用?
- 10. 誤導jqgrid文檔:客戶端排序,但服務器端分頁
- 11. jqgrid客戶端與服務器端分頁排序 - 數據消失
- 12. 服務器端分頁MVC 6.0
- 13. Android分頁服務器或客戶端
- 14. 服務器端分頁和OrderBy與DbContext
- 15. 服務器端分頁MVC3 Webgrid
- 16. 服務器端分頁可能嗎?
- 17. angualrjs UI-GRID服務器端分頁
- 18. 服務器端分頁+ jQuery問題
- 19. ngTable - 服務器端分頁getData錯誤
- 20. Asp.net Listview服務器端分頁
- 21. SQL Server中的服務器端分頁
- 22. 服務器端分頁MVC3 telerik網格
- 23. 服務器端分頁與JqxGrid和Codeigniter
- 24. koGrid排序 - 服務器端分頁
- 25. ASP.NET WebAPI OData服務器端分頁
- 26. Oria Gridx服務器端分頁(dojo EnhancedGrid)
- 27. GWT Celltable服務器端分頁
- 28. mvc服務器端分頁4
- 29. yui和服務器端分頁
- 30. 使用服務器端的Footable分頁
我的問題是,當我下一個頁面上點擊的jqGrid我收到頁= 1,在我的處理程序(我是第1頁),而不是2.我將如何得到它被調用的確切頁值,而不是前一頁 –
@亞瑟:很好的答案,但請你能回答羅希特的問題嗎?我也有同樣的問題。 –