• 搜索查询并实现分页


    前台:

    <%@ 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();
            }
        }
    }

     
  • 相关阅读:
    SpringBoot+ElementUI实现通用文件下载请求(全流程图文详细教程)
    Java中将String格式的标准时间字符串转换为Date格式的方法
    ElementUI中el-upload传递额外参数为date类型时后台SpringBoot接收不到
    模式、框架、架构和平台的区别
    架构、框架、模式和平台
    “模式”与“方式”的区别
    JAVA发送HTTP请求方式
    http status状态码,readyState状态码
    区分网络请求时http和ajax请求
    HTTP请求方式中8种请求方法
  • 原文地址:https://www.cnblogs.com/duanlinlin/p/2958148.html
Copyright © 2020-2023  润新知