今天閑著無事,在C#2.0下用Ajax寫了一個無重新整理快速分頁例子,時間倉促,不足之處請大家指出:首先把AjaxPro.dll檔案添加到引用中,可以到http://www.schwarz-interactive.de/下載 根據你的.net 版本來選擇不同的DLL檔案.default.aspx.cs:public partial class _Default : System.Web.UI.Page { string connectString = "";//定義自已的串連串 protected void Page_Load(object sender, EventArgs e) { AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default)); } [AjaxPro.AjaxMethod] public DataTable GetDataTable() { SqlDataAdapter ad = new SqlDataAdapter("select * from tableName", connectString); DataSet ds = new DataSet(); ad.Fill(ds); int num = ds.Tables[0].Rows.Count; return ds.Tables[0]; }} |
default.aspx:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Ajax無重新整理分頁</title>
<script language="javascript">
var dtObj=new Object();
function stringToInteger(inputString)
{
if(inputString == null || inputString == "")
{
return 0;
}
else
{
try
{
return parseInt(inputString);
}
catch(e)
{
return 0;
}
}
}
function numberToString(inputNumber)
{
return inputNumber.toString();
}
function getUrlParam(param)
{
var url=window.location.search.substring(1);
var paramArray=url.split("&");
for(var i=0;i<paramArray.length;i++)
{
var pramArraySub=paramArray[i].split("=");
if(pramArraySub[0]==param && pramArraySub[1] != "undefined")
return pramArraySub[1];
}
return "";
}
var pageSize=5;
//var pageNo=stringToInteger(getUrlParam("pageno"));
</script>
</head>
<body>
<form id="form1" runat="server">
<div align=center><span id="sp_ShowContent"></span></div>
</form>
</body>
</html>
<script language=javascript>
var pageNo =0;
var dtObj = new Object();//對象執行個體化***************
dtObj=_Default.GetDataTable().value;// 從後台得到資料**********
var totalPage=0;
var totalRecord = dtObj.Rows.length;
if((dtObj.Rows.length%pageSize)==0)
totalPage = dtObj.Rows.length/pageSize;
else
totalPage = Math.ceil(dtObj.Rows.length/pageSize);
function showContent(op)
{
if(op == "first")
{
pageNo = 0;
}
else if(op == "previous")
{
if(pageNo>0)
pageNo-=1;
else
pageNo=0;
}
else if(op == "next")
{
if(pageNo<totalPage-1)
pageNo+=1;
else
pageNo = totalPage-1;
}
else if(op == "last")
{
pageNo=totalPage-1;
}
else
{
pageNo=0;
}
var content = "";
var startRecord = pageNo*pageSize;
var endRecord = 0;
if(pageNo>=totalPage-1)
endRecord = totalRecord;
else
endRecord = (pageNo+1)*pageSize;
content = '<table width="75%" border="1" cellspacing="0" bordercolordark="#FFFFFF" bordercolorlight="#339900">';
content += '<tr>';
content += '<td width="45%">編號</td>';
content += '<td width="55%">使用者名稱</td>';
content += '</tr>';
for(var i=startRecord;i<endRecord;i++)
{
content += '<tr>';
content += '<td width="45%">'+dtObj.Rows[i]["ID"]+'</td>';//ID,UserName is Column Name
content += '<td width="55%">'+dtObj.Rows[i]["UserName"]+'</td>';
content += '</tr>';
}
content += '<tr align="center">';
content += '<td colspan="2"><a href="#" _fcksavedurl=""#"" _fcksavedurl=""#"" onClick="showContent(/'first/')">第一頁</a> <a href="#" onClick="showContent(/'previous/')">上一頁</a> <a href="#" onClick="showContent(/'next/')">下一頁</a> <a href="#" onClick="showContent(/'last/')">最後頁</a></td>';
content += '</tr>';
content += '</table>';
window.document.getElementById("sp_ShowContent").innerHTML=content;
}
showContent("first");
</script>