DataList使用存储过程实现分页 .

it2022-05-21  69

<head runat="server">    <title></title>    <style type="text/css">        .style1        {            width: 46px;        }    </style></head><body>    <form id="form1" runat="server">  <div>        <asp:DataList ID="DataList1" runat="server"         onitemcommand="DataList1_ItemCommand"         oncancelcommand="DataList1_CancelCommand"         ondeletecommand="DataList1_DeleteCommand" oneditcommand="DataList1_EditCommand"         onupdatecommand="DataList1_UpdateCommand" style="margin-right: 0px"          >        <EditItemTemplate>            <table style="width:100%;">                <tr>                    <td class="style1">                        姓名</td>                    <td>                        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("sname") %>'></asp:TextBox>                    </td>                </tr>                <tr>                    <td class="style1">                        性别</td>                    <td>                        <asp:TextBox ID="TextBox2" runat="server" Text='<%# Eval("sex") %>'></asp:TextBox>                    </td>                </tr>                <tr>                    <td class="style1">                        年龄</td>                    <td>                        <asp:TextBox ID="TextBox3" runat="server" Text='<%# Eval("age") %>'></asp:TextBox>                    </td>                </tr>                <tr>                    <td class="style1">                        <asp:Button ID="Button4" runat="server" CommandArgument='<%# Eval("sid") %>'                             CommandName="update" Text="更新" />                    </td>                    <td>                        <asp:Button ID="Button5" runat="server" CommandArgument='<%# Eval("sid") %>'                             CommandName="cancel" Text="取消" />                    </td>                </tr>            </table>        </EditItemTemplate>        <ItemTemplate>            姓名:<asp:Label ID="Label1" runat="server" Text='<%# Eval("sname") %>'></asp:Label>            <br />            性别:<asp:Label ID="Label2" runat="server" Text='<%# Eval("sex") %>'></asp:Label>            <br />            年龄:<asp:Label ID="Label3" runat="server" Text='<%# Eval("age") %>'></asp:Label>            <br />            <br />            <asp:Button ID="Button2" runat="server" CommandName="edit"                 Text="编辑" CommandArgument='<%# Eval("sid") %>' />            <asp:Button ID="Button3" runat="server" CommandName="delete" Text="删除"                 CommandArgument='<%# Eval("sid") %>' />            <br />            <br />            <asp:Button ID="Button1" runat="server" CommandArgument='<%# Eval("sid") %>'                 CommandName="Buy" Text="放入购物车" />        </ItemTemplate>

    </asp:DataList>              <br />      <asp:Button ID="btnfirst" runat="server" Text="第一页" οnclick="btnfirst_Click" />      <asp:Button ID="next" runat="server" Text="上一页" οnclick="next_Click" />      <asp:Button ID="btnNEXT" runat="server" Text="下一页" οnclick="btnNEXT_Click" />      <asp:Button ID="btnlast" runat="server" Text="莫一页" οnclick="btnlast_Click" />      <br />      <asp:Label ID="Label4" runat="server" Text="Label"></asp:Label>              <br />      <br />      <asp:HiddenField ID="HiddenField1" runat="server" />      <asp:HiddenField ID="HiddenField2" runat="server" />            </div>    </form></body></html>/        protected void Page_Load(object sender, EventArgs e)        {            if(!IsPostBack)            {                BindProduct(2,1);            }        }

        private void BindProduct(int pageSize, int pageIndex)        {            string sp_name="sp_Student_Select_by_Page_rowNumber";           // string sql = "select * from student";           // @pageSize int,  --每页记录数量           //@pageCount int output,  --总页数           //@pageIndex int  --当前页索引号            SqlParameter[] prms = new SqlParameter[] {            new SqlParameter("@pageSize",pageSize),            new SqlParameter("@pageCount",SqlDbType.Int),            new SqlParameter("@pageIndex",pageIndex)            };            prms[1].Direction = ParameterDirection.Output;            DataTable dt = SqlHelper.ExecuteDataTable(sp_name,CommandType.StoredProcedure,prms);            this.DataList1.DataSource = dt;            this.DataList1.DataBind();            string sql = "select count(*) from student";            int pagetotalNumber = (int)SqlHelper.ExecteScalar(sql);            int pageCount;            if (pagetotalNumber % pageSize!= 0)            {                pageCount = pagetotalNumber / pageSize + 1;                            }            else             {                pageCount = pagetotalNumber / pageSize;                            }            this.HiddenField2.Value = pageCount.ToString();            this.HiddenField1.Value = pageIndex.ToString();        }

        protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)        {            if(e.CommandName=="Buy")            {                Response.Write(e.CommandArgument.ToString());            }        }

        protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)        {            this.DataList1.EditItemIndex = e.Item.ItemIndex;            this.BindProduct(2,1);        }

        protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)        {

            string name = (e.Item.FindControl("TextBox1") as TextBox).Text;            string sex = (e.Item.FindControl("TextBox2") as TextBox).Text;            string age = (e.Item.FindControl("TextBox3") as TextBox).Text;

            string sql = "update student set sname=@name,sex=@sex,age=@age where sid=@sid";            SqlParameter[] pms = new SqlParameter[]             {            new SqlParameter("@name",name),            new SqlParameter("@sex",sex),            new SqlParameter("@age",age),            new SqlParameter("@sid",e.CommandArgument)            };            SqlHelper.ExecuteNonQuery(sql, pms);        }

        protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)        {            this.DataList1.EditItemIndex = -1;            this.BindProduct(2,1);        }

        protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)        {            string sql = "delete from student where sid=@sid";            SqlParameter pm = new SqlParameter("@sid",e.CommandArgument);            SqlHelper.ExecuteNonQuery(sql,pm);            this.BindProduct(3,1);        }

     

        protected void btnfirst_Click(object sender, EventArgs e)        {            this.BindProduct(2,1);        }

        protected void next_Click(object sender, EventArgs e)        {            int index = Convert.ToInt32(this.HiddenField1.Value);            if(index>1)            {            index--;            }                        this.BindProduct(2,index);        }

        protected void btnNEXT_Click(object sender, EventArgs e)        {            int index = Convert.ToInt32(this.HiddenField1.Value);            if (index<Convert.ToInt32(this.HiddenField2.Value))            {                index++;            }

            this.BindProduct(2,index);        }

        protected void btnlast_Click(object sender, EventArgs e)        {

            this.BindProduct(2,Convert.ToInt32(this.HiddenField2.Value));        }/  public static object ExecteScalar(string sql, params SqlParameter[] pms)        {            using (SqlConnection conn = new SqlConnection(constr2))            {                using (SqlCommand cmd = new SqlCommand(sql, conn))                {

                    if (pms != null)///说明还传了参数                    {                        cmd.Parameters.AddRange(pms);                    }                    conn.Open();                    return cmd.ExecuteScalar();                }            }        }                public static DataTable ExecuteDataTable(string sql,CommandType commandtype, params SqlParameter[] pms)        {            DataTable dt = new DataTable();            SqlDataAdapter adapter = new SqlDataAdapter(sql,constr2);            adapter.SelectCommand.CommandType = commandtype;            if (pms != null)            {                adapter.SelectCommand.Parameters.AddRange(pms);            }            adapter.Fill(dt);                       return dt;

        }

    }}

转载于:https://www.cnblogs.com/qzc900809/archive/2012/12/19/2825716.html

相关资源:数据结构—成绩单生成器

最新回复(0)