摘要:asp.net web form jquery template + jquery pagination 分頁
首先去抓取pagination的plugin
然後再去抓取json.net
有關於任何格式轉json的文章,可以參考 [ASP.net WebForm] 利用JSON.net 實現 DataTable轉JSON字串、JSON字串轉DataTable
有關於template的單純說明,可以參考in91大大的[jQuery]透過jQuery Template把JSON資料套入範本
因為這篇是在講整合,所以就不想針對細節的部份一一說明。
然後先引用進來各jquery的參考檔
<link href="css/pagination.css" rel="stylesheet" type="text/css" />
<script src="Jscript/jquery-1.8.3.min.js" type="text/javascript"></script>
<script src="Jscript/jquery.pagination.js" type="text/javascript"></script>
//下面這些是引用template必須的,要得到欄位資訊則是${欄位}
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script>
<script type="text/x-jquery-tmpl" id="myTempl">
<tr><td><input id="Checkbox1" type="checkbox" value="${nid}" /></td>
<td>${title}</td><td>${udate}</td></tr>
</script>
/*pagination可預設的值和說明
maxentries | 总条目数 | 必选参数,整数 |
items_per_page | 每页显示的条目数 | 可选参数,默认是10 |
num_display_entries | 连续分页主体部分显示的分页条目数 | 可选参数,默认是10 |
current_page | 当前选中的页面 | 可选参数,默认是0,表示第1页 |
num_edge_entries | 两侧显示的首尾分页的条目数 | 可选参数,默认是0 |
link_to | 分页的链接 | 字符串,可选参数,默认是"#" |
prev_text | “前一页”分页按钮上显示的文字 | 字符串参数,可选,默认是"Prev" |
next_text | “下一页”分页按钮上显示的文字 | 字符串参数,可选,默认是"Next" |
ellipse_text | 省略的页数用什么文字表示 | 可选字符串参数,默认是"…" |
prev_show_always | 是否显示“前一页”分页按钮 | 布尔型,可选参数,默认为true,即显示“前一页”按钮 |
next_show_always | 是否显示“下一页”分页按钮 | 布尔型,可选参数,默认为true,即显示“下一页”按钮 |
callback | 回调函数 | 默认无执行效果 |
*/
function showDeteil() {
$("#Pagination").pagination(總筆數 , {
prev_text: "上一頁",
next_text: "下一頁",
num_edge_entries: 2,
num_display_entries: 8,
callback: pageselectCallback
});
function pageselectCallback(page) {
$.ajax({
type: "POST",
url: "Admin_news.ashx",
data: { "page": parseInt(page + 1) },
success: function (data) {
var myarray = $.parseJSON(data);
$("#myTempl").tmpl(myarray).appendTo("#listview");
if (myarray.length > 0) {
$('#listview').show();
}
else {
$('#listview').hide();
}
}
});
}
}
$(function () {
showDeteil();
});
//html的部份
<div id="list">
<table id="listview">
<tr>
<th>
</th>
<th>
標題
</th>
<th>
時間
</th>
</tr>
</table>
</div>
<div id="Pagination" class="pagination" style="width: 90%; margin-left: auto; margin-right: auto;">
</div>
//Admin_news.ashx的部份
using Newtonsoft.Json;
string result="";
int page =Convert.ToInt16(context.Request["page"]);
DataTable dt = new DataTable();
APDB DB = new APDB();
dt = DB.GETlatest_news(page);
result = JsonConvert.SerializeObject(dt, Formatting.Indented);
context.Response.Write(result);
//APDB的GETlatest_news部份,連線字串和開啟關閉的程式碼就不寫了
public DataTable GETlatest_news(int page)
{
int start = page * 10 - 9;
int end = page * 10;
cmd.CommandText = "select * from (select row_number() over (order by nid desc)" +
" as rownum, * from latest_news) as newtable where rownum>="+start+" and rownum<="+end;
SqlDataReader dr = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(dr);
return dt;
}