--前台界面
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table>
<tr><td> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button"
onclick="Button1_Click" /></td></tr>
<tr><td> <div id="divResult" runat="server"></div></td></tr>
<tr>
<td>
<asp:LinkButton ID="BtnFirst" runat="server" onclick="BtnFirst_Click">第一页</asp:LinkButton>
<asp:LinkButton ID="BtnPre" runat="server" onclick="BtnPre_Click">上一页</asp:LinkButton>
<asp:LinkButton ID="BtnNext" runat="server" onclick="BtnNext_Click">下一页</asp:LinkButton>
<asp:LinkButton ID="BtnLast" runat="server" onclick="BtnLast_Click">最后一页</asp:LinkButton>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
-------------后台代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Text;
namespace 新闻管理系统
{
public partial class 分页练习 : System.Web.UI.Page
{
int pagesize = 3;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["pageindex"] = 1;
GetCount();
DateBind();
}
}
private void GetCount()
{
string strcon = "data source=LOVE-PC\\SQLEXPRESSPC;initial catalog=News;user id=sa;password=admin";
SqlConnection conn = new SqlConnection(strcon);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT COUNT(*) FROM T_News WHERE NewsTitle LIKE @newskey OR NewsContent LIKE @newskey";
cmd.Parameters.AddWithValue("@newskey", "%" +TextBox1.Text + "%");
conn.Open();
int totalcount = Convert.ToInt32(cmd.ExecuteScalar());
if (totalcount % pagesize == 0)
{
ViewState["pagelastindex"] = totalcount / pagesize;
}
else
{
ViewState["pagelastindex"] = totalcount / pagesize + 1;
}
}
private void DateBind()
{
string connstr = "data source=LOVE-PC\\SQLEXPRESSPC;initial catalog=News;user id=sa;password=admin";
using (SqlConnection conn = new SqlConnection(connstr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT TOP(@pagesize) * FROM T_News WHERE(NewsTitle LIKE @newskey OR NewsContent LIKE @newskey) AND Id NOT IN(SELECT TOP ((@pageindex-1)*@pagesize) Id FROM T_News WHERE NewsTitle LIKE @newskey OR NewsContent LIKE @newskey
ORDER BY Id )ORDER BY Id";
/*参数替换方法1*/
cmd.Parameters.AddWithValue("@pageindex",Convert.ToInt32(ViewState["pageindex"]));
cmd.Parameters.AddWithValue("@pagesize",pagesize);
cmd.Parameters.AddWithValue("@newskey", "%" + TextBox1.Text + "%");
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
cmd.Dispose();
conn.Dispose();
StringBuilder sb1 = new StringBuilder();
sb1.Append("<table border=2>");
sb1.Append("<tr><td>新闻标题</td><td>新闻内容</td><td>创建时间</td></tr>");
for (int i = 0; i < dt.Rows.Count; i++)
{
sb1.Append("<tr>");
sb1.Append("<td>" + dt.Rows[i]["NewsTitle"].ToString() + "</td>");
sb1.Append("<td>" + dt.Rows[i]["NewsContent"].ToString() + "</td>");
sb1.Append("<td>" + dt.Rows[i]["CreateTime"].ToString() + "</td>");
sb1.Append("</tr>");
}
sb1.Append("</table>");
divResult.InnerHtml = sb1.ToString();
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
ViewState["pageindex"] = 1;
DateBind();
GetCount();
}
protected void BtnFirst_Click(object sender, EventArgs e)
{
int pageindex = Convert.ToInt32(ViewState["pageindex"]);
pageindex = 1;
ViewState["pageindex"] = pageindex;
DateBind();
}
protected void BtnPre_Click(object sender, EventArgs e)
{
int pageindex = Convert.ToInt32(ViewState["pageindex"]);
if (pageindex > 1)
{
pageindex--;
ViewState["pageindex"] = pageindex;
DateBind();
}
}
protected void BtnNext_Click(object sender, EventArgs e)
{
int pageindex = Convert.ToInt32(ViewState["pageindex"]);
if (pageindex < Convert.ToInt32(ViewState["pagelastindex"]))
{
pageindex++;
ViewState["pageindex"] = pageindex;
DateBind();
}
}
protected void BtnLast_Click(object sender, EventArgs e)
{
ViewState["pageindex"] = ViewState["pagelastindex"];
DateBind();
}
}
}