分页!存储过程!后台代码!

来源:互联网 发布:微信软件军团 编辑:程序博客网 时间:2024/05/17 07:13
页面调用时使用的代码: 

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

 

原创粉丝点击