分頁!預存程序!後台代碼!

來源:互聯網
上載者:User

頁面調用時使用的代碼: 

            if (!IsPostBack)
            {
                Search1.TableName = "chongzhiLog";
                Search1.OrderType = "desc";
                Search1.OrderField = "addTime";

                //if (ht["GameItemAddLog_shichang"].ToString() == "1")//擁有財務許可權提取市場已審核財務未審核記錄
                //{
                    Search1.SqlWhere = "Type='贈送' and flagShichang='未審核' and state='未審核'";
                //}
               
                Search1.PageSize = 10;
                Search1.DataControlName = "GridView1";
            }

 

前台代碼編輯:

<div>
<asp:Label ID="Label2" runat="server" Font-Size="9pt">共</asp:Label>&nbsp;<span
    style="font-family: 宋體"> </span>
<asp:Label ID="lbl_RecordCnt" runat="server" Font-Size="9pt"></asp:Label>&nbsp;
<asp:Label ID="Label3" runat="server" Font-Size="9pt">項</asp:Label><span style="font-family: Times New Roman">&nbsp; </span>
<asp:Label ID="Label4" runat="server" Font-Size="9pt" ForeColor="Black">|</asp:Label>&nbsp;
<asp:LinkButton ID="lkbFirst" runat="server" CommandArgument="First" Enabled="False"
    Font-Size="9pt" ForeColor="Black" OnCommand="ChangePage">首頁</asp:LinkButton>&nbsp;
<asp:LinkButton ID="lkbPre" runat="server" CommandArgument="Pre" Enabled="False"
    Font-Size="9pt" ForeColor="Black" OnCommand="ChangePage">上一頁</asp:LinkButton>&nbsp;
<asp:LinkButton ID="lkbNext" runat="server" CommandArgument="Next" Enabled="False"
    Font-Size="9pt" ForeColor="Black" OnCommand="ChangePage">下一頁</asp:LinkButton>&nbsp;
<asp:LinkButton ID="lkbLast" runat="server" CommandArgument="Last" Enabled="False"
    Font-Size="9pt" ForeColor="Black" OnCommand="ChangePage">末頁</asp:LinkButton>&nbsp;
<asp:Label ID="Label5" runat="server" Font-Size="9pt" ForeColor="Black">|</asp:Label>&nbsp;
<asp:Label ID="Label6" runat="server" Font-Size="9pt">轉到</asp:Label><asp:TextBox ID="txt_CurrentPage"
    runat="server" AutoPostBack="True" Enabled="False" style="width:20px; text-align:center" CssClass="input" OnTextChanged="txt_CurrentPage_TextChanged"></asp:TextBox><asp:Label ID="Label8" runat="server" Font-Size="9pt" ForeColor="Black">/</asp:Label>&nbsp;
<asp:Label ID="lbl_PageCnt" runat="server" Font-Size="9pt"></asp:Label>&nbsp;
<asp:Label ID="Label9" runat="server" Font-Size="9pt">頁</asp:Label>
</div>

 

 

後台代碼:

            if (!IsPostBack)
            {
                if (this.InitBindData)
                {
                    //預設顯示為第幾頁
                    ViewState["CurrentPage"] = ViewState["CurrentPage"] == null || ViewState["CurrentPage"].ToString() == "" ? "1" : ViewState["CurrentPage"].ToString();
                    //每頁顯示記錄總數
                    ViewState["PageSize"] = ViewState["PageSize"] == null || ViewState["PageSize"].ToString() == "" ? 10 : int.Parse(ViewState["PageSize"].ToString());

                    this.BindGridData();
                }
            }

   protected void ChangePage(object sender, System.Web.UI.WebControls.CommandEventArgs e)
        {
            int PageCount = this.GetPageCount();
            int CurrentPage = int.Parse(ViewState["CurrentPage"].ToString());

            string Change = e.CommandArgument.ToString();
            if (Change == "Pre") //上一頁  
            {
                if (CurrentPage <= 1)
                {
                    ViewState["CurrentPage"] = 1;
                }
                else
                {
                    ViewState["CurrentPage"] = CurrentPage - 1;
                }
            }
            else if (Change == "Next") //下一頁 
            {
                if (CurrentPage >= PageCount)
                {
                    ViewState["CurrentPage"] = PageCount;
                }
                else
                {
                    ViewState["CurrentPage"] = CurrentPage + 1;
                }
            }
            else if (Change == "First") //首頁
            {
                ViewState["CurrentPage"] = 1;
            }
            else //末頁
            {
                ViewState["CurrentPage"] = PageCount;
            }

            //顯示當前頁
            this.txt_CurrentPage.Text = ViewState["CurrentPage"].ToString();

            this.ProData();
        }

        #endregion

        #region 綁定資料

        /// <summary>
        /// 設定分頁相關的參數
        /// </summary>
        private void BindGridData()
        {
            //記錄總數
            this.lbl_RecordCnt.Text = this.GetRecordCount().ToString();
            //總頁數
            this.lbl_PageCnt.Text = this.GetPageCount().ToString();
            if (this.lbl_PageCnt.Text != "0")
            {
                //當前頁
                this.txt_CurrentPage.Text = ViewState["CurrentPage"].ToString();
            }
            else
                this.txt_CurrentPage.Text = "0";

            //避免翻頁後再查詢出現列表沒記錄的情況/總頁數小於當前頁數
            if (int.Parse(this.lbl_RecordCnt.Text) <= int.Parse(ViewState["PageSize"].ToString())||int.Parse(this.lbl_PageCnt.Text) < int.Parse(ViewState["CurrentPage"].ToString()))
            {
                ViewState["CurrentPage"] = 1;
                this.txt_CurrentPage.Text = "1";
            }

            //綁定資料
            this.ProData();
        }

        #endregion

        #region 處理資料集

        /// <summary>
        /// 處理資料集
        /// </summary>
        /// <returns></returns>
        private void ProData()
        {
            SqlConnection conn = new SqlConnection(strconn);
            SqlCommand cmd = new SqlCommand("GetRecordFromPage", conn);
            conn.Open();

            cmd.CommandType = CommandType.StoredProcedure;

            SqlParameter prmTblName = new SqlParameter("@tblName", SqlDbType.VarChar, 255);
            prmTblName.Value = "" + ViewState["TableName"].ToString() + "";
            cmd.Parameters.Add(prmTblName);

            string retcolumns = ViewState["RetColumns"] == null || ViewState["RetColumns"].ToString() == "" ? "*" : ViewState["RetColumns"].ToString();
            SqlParameter prmRetColumns = new SqlParameter("@RetColumns", SqlDbType.VarChar, 1000);
            prmRetColumns.Value = retcolumns;
            cmd.Parameters.Add(prmRetColumns);

            string sqlwhere = ViewState["SqlWhere"] == null || ViewState["SqlWhere"].ToString() == "" ? "" : ViewState["SqlWhere"].ToString();
            SqlParameter prmStrWhere = new SqlParameter("@strWhere", SqlDbType.VarChar, 1000);
            prmStrWhere.Value = sqlwhere;
            cmd.Parameters.Add(prmStrWhere);

            SqlParameter prmOrderfld = new SqlParameter("@Orderfld", SqlDbType.VarChar, 255);
            prmOrderfld.Value = ViewState["OrderField"].ToString() + "";
            cmd.Parameters.Add(prmOrderfld);

            SqlParameter prmPageIndex = new SqlParameter("@PageIndex", SqlDbType.Int);
            prmPageIndex.Value = int.Parse(ViewState["CurrentPage"].ToString());
            cmd.Parameters.Add(prmPageIndex);

            SqlParameter prmPageSize = new SqlParameter("@PageSize", SqlDbType.Int);
            prmPageSize.Value = int.Parse(ViewState["PageSize"].ToString()) + "";
            cmd.Parameters.Add(prmPageSize);

            string ordertype = ViewState["OrderType"] == null || ViewState["OrderType"].ToString() == "" ? "asc" : ViewState["OrderType"].ToString();
            SqlParameter prmOrderType = new SqlParameter("@OrderType", SqlDbType.VarChar, 50);
            prmOrderType.Value = ordertype;
            cmd.Parameters.Add(prmOrderType);

            //cmd.Parameters.Add("@tblName", "" + ViewState["TableName"].ToString() + "");
            //string retcolumns = ViewState["RetColumns"] == null || ViewState["RetColumns"].ToString() == "" ? "*" : ViewState["RetColumns"].ToString();
            //cmd.Parameters.Add("@RetColumns", retcolumns);
            //string sqlwhere = ViewState["SqlWhere"] == null || ViewState["SqlWhere"].ToString() == "" ? "" : ViewState["SqlWhere"].ToString();
            //cmd.Parameters.Add("@strWhere", sqlwhere);
            //cmd.Parameters.Add("@Orderfld", "" + ViewState["OrderField"].ToString() + "");
            //cmd.Parameters.Add("@PageIndex", int.Parse(ViewState["CurrentPage"].ToString()));
            //cmd.Parameters.Add("@PageSize", "" + int.Parse(ViewState["PageSize"].ToString()) + "");
            //string ordertype = ViewState["OrderType"] == null || ViewState["OrderType"].ToString() == "" ? "asc" : ViewState["OrderType"].ToString();
            //cmd.Parameters.Add("@OrderType", ordertype);

            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = cmd;

            DataSet ds = new DataSet();
            da.Fill(ds);

            //找到父頁面控制項並綁定(這裡只對DataGrid控制項綁定)
            GridView gv = (GridView)this.Page.FindControl("" + ViewState["DataControlName"].ToString() + "");
            gv.DataSource = ds;
            gv.DataBind();

            gv.Dispose();
            cmd.Dispose();
            conn.Close();

            //控制分頁按扭狀態
            this.StatsLinkButton();
        }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.