后台代码如下:
相关解释请看代码注释
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
TestDataCount();
BindPaperDefineProgramme(1);
}
}
#region 绑定试卷定义方案列表
///
/// 统计该表的所有纪录
///
private void TestDataCount()
{
DataTable dt = null;
try
{
//public static DataTable GetTestData(string tableName, int pageSize, int pageIndex,string columnName,bool isCount)
//第一个参数为要查询的表,第二个参数为每页的纪录数,这里定为25,第三个为页码,这里初始化为第1页,第四个参数为表的字段
//,第五个参数为是否返回纪录总数,这里为true表示返回纪录总数
dt = ExecProc.GetTestData("tbl_Briefness", 25, 1, "I_BriefnessID",true);
}
catch (Exception ex)
{
Response.Write(ex.Message);
return;
}
if (dt.Rows.Count == 0)
{
GridView1.Visible = false;
panPage.Visible = false;
lbNoMessage.Visible = true;
}
else
{
GridView1.Visible = true;
panPage.Visible = true;
lbNoMessage.Visible = false;
lblRecodeCount.Text = dt.Rows[0]["Total"].ToString();
lblCurrentPage.Text = "1";//初始化当前页为第一页
int recodeCount = int.Parse(dt.Rows[0]["Total"].ToString()); //获取纪录总数
int pageSize = recodeCount % 25 == 0 ? recodeCount / 25 : recodeCount / 25 + 1;//计算总页数
lblPageCount.Text = pageSize.ToString();//保存总页数
}
}
#endregion
#region 绑定试卷定义方案列表
///
/// 根据当前页码查询需要的数据
///
/// 页码
private void BindPaperDefineProgramme(int pageIndex)
{
DataTable dt = null;
try
{
dt = ExecProc.GetTestData("tbl_Briefness", 25, pageIndex, "I_BriefnessID", false); //根据页码查询需要的纪录
}
catch (Exception ex)
{
Response.Write(ex.Message);
return;
}
if (dt.Rows.Count == 0)
{
GridView1.Visible = false;
panPage.Visible = false;
lbNoMessage.Visible = true;
}
else
{
GridView1.Visible = true;
panPage.Visible = true;
lbNoMessage.Visible = false;
GridView1.DataSource = dt;
GridView1.DataBind();
}
int pageCount = int.Parse(lblPageCount.Text); //获取总页数
if (pageIndex == 1) //如果是第一页,则第一页灰显,作用是避免不必要的点击造成没必要的数据传输
{
lnkbtnFrist.Enabled = false;
}
else
{
lnkbtnFrist.Enabled = true;
}
if (pageIndex > 1) //如果当前页大于1,则上一页显示,否则灰显
{
lnkbtnPre.Enabled = true;
}
else
{
lnkbtnPre.Enabled = false;
}
if (pageIndex < pageCount)//如果当前页小于总页数,则下一页显示,否则灰显
{
lnkbtnNext.Enabled = true;
}
else
{
lnkbtnNext.Enabled = false;
}
if (pageIndex == pageCount)//如果当前页为最后一页,则末页灰显
{
lnkbtnLast.Enabled = false;
}
else
{
lnkbtnLast.Enabled = true;
}
}
#endregion
#region 翻页相关的事件
///
/// 处理翻页事件
///
///
///
protected void lnkbtnFrist_Click(object sender, EventArgs e) //第一页
{
lblCurrentPage.Text = "1";
BindPaperDefineProgramme(1);
}
protected void lnkbtnPre_Click(object sender, EventArgs e) //上一页
{
int pageIndex = int.Parse(lblCurrentPage.Text);
if (pageIndex > 0)
{
pageIndex--;
lblCurrentPage.Text = pageIndex.ToString();
BindPaperDefineProgramme(pageIndex);
}
}
protected void lnkbtnNext_Click(object sender, EventArgs e)//下一页
{
int pageIndex = int.Parse(lblCurrentPage.Text);
int pageCount = int.Parse(lblPageCount.Text);
if (pageIndex < pageCount)
{
pageIndex++;
lblCurrentPage.Text = pageIndex.ToString();
BindPaperDefineProgramme(pageIndex);
}
}
protected void lnkbtnLast_Click(object sender, EventArgs e)//末页
{
lblCurrentPage.Text = lblPageCount.Text;
BindPaperDefineProgramme(int.Parse(lblPageCount.Text));
}
#endregion
protected void BtnChangePage_Click(object sender, EventArgs e)//跳转到指定页
{
int pageIndex = int.Parse(txtPageIndex.Text);
int pageCount = int.Parse(lblPageCount.Text);
if (pageIndex == 0)//如果为0,则提示错误
{
Response.Write("");
return;
}
if (pageIndex > pageCount)//如果大于总页数则提示错误
{
Response.Write("");
return;
}
lblCurrentPage.Text = pageIndex.ToString();
BindPaperDefineProgramme(pageIndex);
}
}
来源:csdn