DataList分页

using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

namespace Yin{
    public partial class MessageView : System.Web.UI.Page{
        private void Page_Load(object sender, System.EventArgs e){
            if (!IsPostBack){
                myDataBind();
            }
        }

    #region 该过程用来绑定数据
    public void myDataBind(){
    //首先建立DataSet对象,注意这里读取了全部数据
        string strSql = "select * from RestoreInfo order by rId desc";
        int parms;
        if (Request.QueryString["id"] == null || Request.QueryString["id"] == "")
            parms = 1;
        else
            parms = int.Parse(Request.QueryString["id"]);
        SqlDataAdapter adp = SqlHelper.ExecuteAdapter(CommandType.Text, strSql, null);
        DataSet dst = new DataSet();
        adp.Fill(dst, "RestoreInfo");
        DataView dv = new DataView();
        dv.Table = dst.Tables[0];
        dv.RowFilter = "mId = "+parms+"and isView = "+true;

    //然后建立PagedDataSource对象
    PagedDataSource pgds = new PagedDataSource();
       pgds.DataSource = dv;//dst.Tables["RestoreInfo"].DefaultView;    //设置pgds的数据源
    pgds.AllowPaging=true;            //允许分页
    pgds.PageSize=5;              //每页显示9条记录
    pgds.CurrentPageIndex=int.Parse(lblPageIndex.Text);     //设置当前显示数据页,从隐藏标签中读取
    lblPageCount.Text=pgds.PageCount.ToString();       //将总页数保存到隐藏标签中
 
   //将PagedDataSource对象绑定到DataList控件
   myDataList.DataSource=pgds;           //指定数据源为PagedDataSource对象
   myDataList.DataBind();            //执行绑定

   //显示当前页和总页码
   lblPage.Text = (pgds.CurrentPageIndex+1) + "/" + pgds.PageCount;
  }
    #endregion

  #region 客户单击页码LinkButton触发该事件
  public void lbtn_Click(Object sender, EventArgs e){
   //下面首先从隐藏标签中读取原来显示的页码和总页数
   int intPageIndex = int.Parse(lblPageIndex.Text);     //读取原来显示第几页
   int intPageCount = int.Parse(lblPageCount.Text);     //读取总页数
   //下面根据单击按钮设定新的显示页码
   String arg = ((LinkButton)sender).CommandName.ToString();
      //((Button)sender).CommandName == "b1"
   switch(arg){
          case "First":
    intPageIndex = 0;
          break;
     case "Prev":
    if(intPageIndex>0)
   intPageIndex -=1;
  break;
     case "Next":
    if(intPageIndex<intPageCount-1)
   intPageIndex +=1;
  break;
     case "Last":
    intPageIndex = intPageCount-1;
        break;
      }
 //下面将新的显示页码保存到隐藏标签中
 lblPageIndex.Text=intPageIndex.ToString();
 //下面调用数据,重新绑定页面
 myDataBind();
   }
  #endregion

       #region 当客户填写页码并单击GO按钮时执行该过程
       public void btnPage_Click(Object sender, EventArgs e){
            //下面首先从隐藏标签中读取总页数
            int intPageCount = int.Parse(lblPageCount.Text);     //读取总页数
            //下面获取客户填写的页码,并处理使其符合要求
            int intPageIndex = int.Parse(txtPage.Text);
            if (intPageIndex < 1)
                intPageIndex = 0;            //如果客户填写了小于1的页码,则显示首页
            else if (intPageIndex > intPageCount)
                intPageIndex = intPageCount - 1;        //如果填写了大于实际页面的数字,则显示末页
            else
                intPageIndex = intPageIndex - 1;        //因为索引从0开始,所以减1
            txtPage.Text = "";            //清空文本框
            //下面将要显示的页码保存到隐藏标签中
            lblPageIndex.Text = intPageIndex.ToString();
            //下面重新绑定数据
            myDataBind();
        }
        #endregion

        #region 留言函数
        protected void Button1_Click(object sender, EventArgs e){
            int cMid = int.Parse(Request.Params["id"]);
            string cAuthor, cContent, cHead, cEmail, cTime, cIp;
            if (Session["uName"] != null)
                cAuthor = Session["uName"].ToString();
            else
            {
                cAuthor = "";
                ClientScript.RegisterStartupScript(this.GetType(), "err", "<script>alert('请先登录才能留言');location.href='Message.aspx';</script>");
            }
            cHead = "image/ima/dsa.jpg";
            cTime = DateTime.Now.ToString();//Now;
            cIp = Request.ServerVariables["REMOTE_ADDR"];
            String strSql = "insert into RestoreInfo (mId,rAuthor,rContent,rHaed,rEmail,rTime,rIp) values(@mId,@Author,@Content,@Head,@Email,@Time,@Ip)";
            SqlParameter [] parms = { new SqlParameter("@mId",SqlDbType.Int),
                                      new SqlParameter("@Author",SqlDbType.VarChar,15),
                                      new SqlParameter("@Content",SqlDbType.VarChar,8000),
                                      new SqlParameter("@Head",SqlDbType.VarChar,50),
                                      new SqlParameter("@Email",SqlDbType.VarChar,50),
                                      new SqlParameter("@Time",SqlDbType.VarChar,20),
                                      new SqlParameter("@Ip",SqlDbType.VarChar,16)};
            parms[0].Value = cMid;
            parms[1].Value = cAuthor;
            parms[2].Value = TextBox2.Text;
            parms[3].Value = cHead;
            parms[4].Value = TextBox3.Text;
            parms[5].Value = cTime;
            parms[6].Value = cIp;
            int val = SqlHelper.ExecuteNonQuery(CommandType.Text, strSql, parms);
            if (val > 0)
                ClientScript.RegisterStartupScript(typeof(string), "", "<script>alert('发表意见成功');location.href='MessageView.aspx?id='+cMid;</script>");
            else
                ClientScript.RegisterStartupScript(typeof(string), "", "<script>alert('留言过程中发生错误');location.href='MessageView.aspx;</script>");
        }
        #endregion
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章