源部分:
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager runat="server" ID="scriptManage1">
</asp:ScriptManager>
<asp:UpdatePanel ID="updatePanelTest" runat="server">
<ContentTemplate>
<div id="center-top" > <div class="fon"><center>这是标题</center></div> </div>
<div id="center-content_Default2" >
<asp:Repeater runat="server" Id="repeaterMain" >
<ItemTemplate>
<div id="pic-out" >
<li class="pic-a" >编号<%# DataBinder.Eval(Container.DataItem,"UserID") %></li>
<li class="pic-b" >姓名<%# DataBinder.Eval(Container.DataItem,"UserName")%></li>
<li>密码<%#Eval("UserPwd")%> </li>
</div>
</ItemTemplate>
</asp:Repeater>
</div>
<div style="PADDING-TOP:10px; text-align:center" >
共<asp:label id="labPageCount" ForeColor="#ff0000" Runat="server"></asp:label>页/
<asp:label id="labTotalCount" ForeColor="#ff0000" Runat="server"></asp:label>条记录
<asp:linkbutton id="linkBtnFistPage" Runat="server" CommandName="first" OnClick="Pager_Click">首頁</asp:linkbutton>
<asp:linkbutton id="linkBtnPrevPage" Runat="server" CommandName="prev" OnClick="Pager_Click">上一頁</asp:linkbutton>
<asp:linkbutton id="linkBtnNextPage" Runat="server" CommandName="next" OnClick="Pager_Click">下一頁</asp:linkbutton>
<asp:linkbutton id="linkBtnLastPage" Runat="server" CommandName="last" OnClick="Pager_Click">尾頁</asp:linkbutton>当前第
<asp:label id="labCurrentPage" ForeColor="#ff0000" Runat="server"></asp:label>頁
转到第
<asp:textbox id="tboxGotoPage" Width="30px" Runat="server" AutoPostBack="True"
MaxLength="5" ontextchanged="tboxGotoPage_TextChanged" ></asp:textbox>頁
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
后台代码部分:
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Text;
using Microsoft.ApplicationBlocks.Data;
public partial class _Default : System.Web.UI.Page
{
int intSumCount = 0;//总记录数
int intPageCount = 0;//总页数
int intCurrentPage = 1;//当前页数
int intPageSize = 1;//每一页的记录数
public static int intPageIndex = 1;
protected void Page_Load(object sender, EventArgs e)
{
//if (!IsPostBack)
//{
intSumCount = getSumCount();
intPageCount = intSumCount / intPageSize + GetOverPage();
labTotalCount.Text = intSumCount.ToString();
labPageCount.Text = intPageCount.ToString();
linkBtnFistPage.Enabled = false;
linkBtnPrevPage.Enabled = false;
if (intSumCount <= intPageSize)
tboxGotoPage.Enabled = false;
else
tboxGotoPage.Enabled = true;
if(!IsPostBack)
{
BindMainData();
}
}
#region 事件
protected void tboxGotoPage_TextChanged(object sender, EventArgs e)
{
int intPageIndex = 0;
try
{
intPageIndex = Convert.ToInt32(tboxGotoPage.Text.ToString());
}
catch (Exception error)
{
AlertMessage("只能输入数字!");
return;
}
if (intPageIndex < 1||intPageIndex>intPageCount)
{
AlertMessage("只能输入大于等于1并且小于等于"+intPageCount+"的数字!");
return;
}
intCurrentPage = intPageIndex;
BindMainData();
}
public void Pager_Click(object sender, EventArgs e)
{
string strArg = ((LinkButton)sender).CommandName.ToString();
switch(strArg)
{
case "first":
intPageIndex = 1;
break;
case "prev":
if (intCurrentPage != 1)
{ intCurrentPage -= 1; };
break;
case "next":
if (intCurrentPage < intPageCount)
{ intCurrentPage += 1; }
break;
default :
intCurrentPage = intPageCount;
break;
}
if (intCurrentPage == 1)
{
linkBtnFistPage.Enabled = false;
linkBtnPrevPage.Enabled = false;
}
else
{
linkBtnFistPage.Enabled = true;
linkBtnPrevPage.Enabled = true;
}
if (intCurrentPage == intPageCount)
{
linkBtnNextPage.Enabled = false;
linkBtnLastPage.Enabled = false;
}
else
{
linkBtnNextPage.Enabled = true;
linkBtnLastPage.Enabled = true;
}
BindMainData();
}
#endregion
#region 方法
/// <summary>
/// 得到总共有多少记录
/// </summary>
/// <returns></returns>
private int getSumCount()
{
int sumCount = 0;
DataTable dtTest = new DataTable();
StringBuilder strCmdText = new StringBuilder();
strCmdText.Append("select count(UserID) from Users ");
dtTest = Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteDataset(GetSqlConnection(), CommandType.Text, strCmdText.ToString()).Tables[0];
sumCount = Convert.ToInt32(dtTest.Rows[0][0].ToString());
if (sumCount <= intPageSize)
{
linkBtnFistPage.Enabled = false;
linkBtnPrevPage.Enabled = false;
linkBtnNextPage.Enabled = false;
linkBtnLastPage.Enabled = false;
}
else
{
linkBtnFistPage.Enabled = true;
linkBtnPrevPage.Enabled = true;
linkBtnNextPage.Enabled = true;
linkBtnLastPage.Enabled = true;
}
return sumCount;
}
/// <summary>
/// 计算余下的页数
/// </summary>
/// <returns></returns>
private int GetOverPage()
{
if (intSumCount % intPageSize == 0)
{
return 0;
}
else
{
return 1;
}
}
/// <summary>
/// 得到数据库连接
/// </summary>
/// <returns></returns>
private static SqlConnection GetSqlConnection()
{
SqlConnection conTest = new SqlConnection("server=192.168.0.86;database=ZR_RY;uid=sa;pwd=sa");
return conTest;
}
/// <summary>
/// 绑定主要的数据
/// </summary>
private void BindMainData()
{
labCurrentPage.Text = intCurrentPage.ToString();
int pageSize2 = intPageSize * (intCurrentPage - 1) + 1;
StringBuilder strCmdText = new StringBuilder();
strCmdText.Append("select top " + intPageSize + " * from Users where UserID>=(select max(a.UserID) from (select top " + pageSize2 +" UserID from Users) a )");
repeaterMain.DataSource = SqlHelper.ExecuteDataset(GetSqlConnection(), CommandType.Text, strCmdText.ToString()).Tables[0];
repeaterMain.DataBind();
}
public void AlertMessage(string message)
{
ScriptManager.RegisterClientScriptBlock(updatePanelTest, this.GetType(),"messagebox", "alert('" + message + "')", true);
}
#endregion
}