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
    }

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