datatable1.10伺服器斷分頁,datatable1.10分頁
接著上一篇datatable1.10的新特性,出於工作需求,我們需要進行伺服器端分頁。
本人還是直接拿代碼。。然後給代碼加上注釋。。如果有疑問可以指點一二。。。
$(document).ready(function() {
var table = $('#example').DataTable({
"columns" : _tableCols,
"createdRow" : xxxxxx, //函數名
"processing" : true, //資料多一下子載入不全的時候,頁面會展示載入進行中
"serverSide": true, //設定為true才會進行伺服器分頁
"pagingType": "full_numbers", //分頁按鈕的顯示形式
"paging": true, //如果為FALSE 所有資料顯示在一個頁面上
"ajax" : {
"url" : "xxxx/query",
"type": 'POST',
"data" : function(d) {
d.orderby = "position";
},
"dataSrc" : function(json) {
return json.records;
},
},
});
});
//上面的js代碼就全部寫完,如果需要添加其他屬性如:lengthMenu等。。。可以參考server side processing 網址為:http://datatables.net/manual/server-side
本人用的是springmvc架構,因而在返回的對象中必須包含recordsFiltered 和 recordsTotal 這個兩個長整形參數。不然分頁的時候會報錯(如Showing 1 to 10 of 57 entries 數字會是NaN)。具體為什麼一定要這個兩個參數可以看官網的json資料來源,都有這兩個參數。因而我們返回的對象也應該包含著兩個參數。
//recordsFiltered is the total number of records in the data set after filtering
private long recordsFiltered = 0;
//total number
private long recordsTotal = 0;
如有疑問歡迎留言。。。。
資料來源不支援伺服器端的資料分頁
f(!this.IsPostBack)
{
string newsTypeID = Request.QueryString["TypeID"].ToString();
SqlConnection con = DB.createConnection();
con.Open();
string sqlstr= "select * from newsTile where newsTypeID='" + newsTypeID + "'";
SqlDataAdapter da = new SqlDataAdapter(sqlstr,con);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds.Tables[0].DefaultView;
GridView1.DataBind();
}
這樣就行了啊,看清楚了啊,呵呵
用伺服器語言實現分頁好還是JavaScript實現好
就算是ajax無重新整理分頁
也是幕後處理分頁輸出資料前台顯示而已
不是直接用js來實現分頁
你不可以把全部資料都放到前台用js分的這樣資料量一大就死定了