加查询功能的分页显示(包括当前的页码数和总共的页码数,和直接跳到第几页)

 

int pagesize = 3;
        string str = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
        protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack )
            {
                ViewState["pageindex"] = 1;//当前的页码
                GetCount();
                DataLoad();
               
            }
        }
        private void DataLoad()
        {
                SqlConnection con = new SqlConnection(str);
                SqlCommand cmd = con.CreateCommand();
                cmd.CommandText = "SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY Id) AS rownumber, NewsTitle,NewsContent,CreateTime FROM T_News WHERE NewsTitle LIKE @newskey OR NewsContent LIKE @newskey) A WHERE A.rownumber>((@pageindex-1)*@pagesize) AND A.rownumber<=(@pageindex*@pagesize)";
             
                cmd.Parameters.AddWithValue("@pagesize", pagesize);
                cmd.Parameters.AddWithValue("@pageindex",Convert.ToInt32(ViewState["pageindex"]));
               cmd.Parameters.AddWithValue("@newskey", "%" + TextBox1.Text.Trim() + "%");
                DataTable dt = new DataTable();
                SqlDataAdapter adapter = new SqlDataAdapter(cmd);
                adapter.Fill(dt);
            //将当前的页码赋给页码文本框
                TextBox2.Text=ViewState ["pageindex"].ToString ();
                Label1.Text = ViewState["pageindex"].ToString() + "/" + ViewState["pagetotalindex"].ToString()+"页";
                cmd.Dispose();
                con.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"] + "</td>");
                    sb1.Append("<td>" + dt.Rows[i]["NewsContent"] + "</td>");
                    sb1.Append("<td>" + dt.Rows[i]["CreateTime"] + "</td>");
                    sb1.Append("</tr>");
                }
                sb1.Append("</table>");
                divresult.InnerHtml = sb1.ToString();
        }
        private void GetCount()
        {
             
            SqlConnection con = new SqlConnection(str);
            con.Open();
            SqlCommand cmd = con.CreateCommand();
            cmd.CommandText = "select count(*) from T_News where NewsTitle like @title or NewsContent like @title";
            cmd.Parameters.AddWithValue("@title","%"+TextBox1.Text.Trim()+"%");
               int totalcount = Convert.ToInt32(cmd.ExecuteScalar());//总共 的条数
                if (totalcount % pagesize == 0)
                {
                    ViewState["pagetotalindex"] = totalcount / pagesize;//总过的页码

                }
                else
                {
                    ViewState["pagetotalindex"] = totalcount / pagesize + 1;
                }
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            ViewState["pageindex"] = 1;
            GetCount();
            DataLoad();
        }

       //下一页
        protected void LinkButton3_Click(object sender, EventArgs e)
        {
            int pageindex = Convert.ToInt32(ViewState["pageindex"]);
            if (pageindex < Convert.ToInt32(ViewState["pagetotalindex"]))
            {
                pageindex++;
                ViewState["pageindex"] = pageindex;
                DataLoad();
            }
        }
        //上一页
        protected void 上一页_Click(object sender, EventArgs e)
        {  
            int pageindex= Convert.ToInt32(ViewState["pageindex"]);
            if(pageindex>1)
            {
                pageindex--;
                ViewState["pageindex"] = pageindex;
                DataLoad();
            }
        }

        //首页
        protected void LinkButton1_Click(object sender, EventArgs e)
        {
            ViewState["pageindex"] = 1;
            DataLoad();
        }
        //最后一页
        protected void LinkButton4_Click(object sender, EventArgs e)
        {
            ViewState["pageindex"] = ViewState["pagetotalindex"];
            DataLoad();

        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            int number;
            if(int.TryParse (TextBox2.Text,out number)==true)
            {
                if (number > 1 && number <Convert.ToInt32( ViewState["pagetotalindex"]))
                {
                    ViewState["pageindex"] = number;
                    DataLoad();
                }
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值