前台:
复制代码 代码如下:
%@ 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();
}
}
}
您可能感兴趣的文章:- ASP.NET MVC5 实现分页查询的示例代码
- asp.net中gridview的查询、分页、编辑更新、删除的实例代码
- MVC+EasyUI+三层新闻网站建立 分页查询数据功能(七)