前台:
<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeBehind=\"分页.aspx.cs\" Inherits=\"分页练习.分页\" %>
<!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></title>
</head>
<body>
<form id=\"form1\" runat=\"server\">
<div>
<table>
<tr><td>
<asp:TextBox ID=\"txtKey\" runat=\"server\"></asp:TextBox>
<asp:ImageButton ID=\"btnQuery\" runat=\"server\" onclick=\"btnQuery_Click\" ImageUrl=\"~/images/0.jpg\" Width=\"20\" Height=\"20\" />
<asp:Label ID=\"Label1\" runat=\"server\" Text=\"\"></asp:Label>
</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=\"btnBefore\" runat=\"server\" onclick=\"btnBefore_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虽然是声明在函数内部,看似是局部变量,但是在类中的其他函数中也可以直接使用
ViewState[\"pageindex\"] = 1;
LoadData();
Count();
}
}
//搜索查询
private void LoadData()
{
string strcon = \"Data Source=PC-DLL;Initial Catalog=News;Persist Security Info=True;User Id=sa;Password=linlin\";
SqlConnection conn = new SqlConnection(strcon);
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
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\";
cmd.Parameters.AddWithValue(\"@newskey\", \"%\" + txtKey.Text + \"%\");
cmd.Parameters.AddWithValue(\"@pagesize\",pagesize);
cmd.Parameters.AddWithValue(\"@pageindex\", Convert.ToInt32(ViewState[\"pageindex\"]));
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
StringBuilder sb1 = new StringBuilder();
sb1.Append(\"<table>\");
sb1.Append(\"<tr><td>标题</td><td>内容</td><td>创建时间</td></tr>\");
foreach (DataRow row in dt.Rows)
{
sb1.Append(\"<tr>\");
sb1.Append(\"<td>\" + row[\"NewsTitle\"].ToString() + \"</td>\");
sb1.Append(\"<td>\" + row[\"NewsContent\"].ToString() + \"</td>\");
sb1.Append(\"<td>\" + row[\"CreateTime\"].ToString() + \"</td>\");
sb1.Append(\"</tr>\");
}
sb1.Append(\"</table>\");
divResult.InnerHtml = sb1.ToString();
}
private void Count()
{
string strcon = \"Data Source=PC-DLL;Initial Catalog=News;Persist Security Info=True;User Id=sa;Password=linlin\";
SqlConnection conn = new SqlConnection(strcon);
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = \"SELECT COUNT(*) FROM T_News WHERE NewsTitle LIKE @newskey OR NewsContent LIKE @newskey\";
cmd.Parameters.AddWithValue(\"@newskey\", \"%\" + txtKey.Text + \"%\");
conn.Open();
int totalcount = Convert.ToInt32(cmd.ExecuteScalar());
if (totalcount % pagesize == 0)
{
ViewState[\"pagelastindex\"] = totalcount / pagesize;
}
else
{
ViewState[\"pagelastindex\"] = totalcount / pagesize + 1;
}
cmd.Dispose();
conn.Dispose();
}
//第一页
protected void btnFirst_Click(object sender, EventArgs e)
{
ViewState[\"pageindex\"] = 1;
LoadData();
}
//上一页
protected void btnBefore_Click(object sender, EventArgs e)
{
int pageindex = Convert.ToInt32(ViewState[\"pageindex\"]);
if (pageindex > 1)
{
pageindex--;
ViewState[\"pageindex\"] = pageindex;
LoadData();
}
}
//下一页
protected void btnNext_Click(object sender, EventArgs e)
{
int pageindex = Convert.ToInt32(ViewState[\"pageindex\"]);
if (pageindex < Convert.ToInt32(ViewState[\"pagelastindex\"]))
{
pageindex++;
ViewState[\"pageindex\"] = pageindex;
LoadData();
}
}
//最后一页
protected void btnLast_Click(object sender, EventArgs e)
{
ViewState[\"pageindex\"] = ViewState[\"pagelastindex\"];
LoadData();
}
protected void btnQuery_Click(object sender, ImageClickEventArgs e)
{
Count();
LoadData();
}
}
}
本文地址:https://www.stayed.cn/item/9785
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我