ASP高级.repeater问题

来源:互联网 发布:易碎贴纸淘宝 编辑:程序博客网 时间:2024/04/30 18:17
1.DataList使用存储过程实现分页


aspx文件:


<div>
    
        <asp:DataList ID="DataList1" runat="server" 
            Xoncancelcommand="DataList1_CancelCommand" 
            Xondeletecommand="DataList1_DeleteCommand" Xonitemcommand="DataList1_ItemCommand" 
            Xonupdatecommand="DataList1_UpdateCommand" 
            Xoneditcommand="DataList1_EditCommand">


        <EditItemTemplate>
                <table style="width:100%;">
                    <tr>
                        <td>
                            姓名:</td>
                        <td>
                            <asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("sname") %>'></asp:TextBox>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            年龄:</td>
                        <td>
                            <asp:TextBox ID="TextBox2" runat="server" Text='<%# Eval("age") %>'></asp:TextBox>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            性别:</td>
                        <td>
                            <asp:TextBox ID="TextBox3" runat="server" Text='<%# Eval("sex") %>'></asp:TextBox>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <asp:Button ID="btnGenxin" runat="server" CommandArgument='<%# Eval("sid") %>' 
                                CommandName="update" Text="更新" />
                        </td>
                        <td>
                            <asp:Button ID="btnCancel" 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 />
                <br />
                年龄:<asp:Label ID="Label2" runat="server" Text='<%# Eval("age") %>'></asp:Label>
                <br />
                <br />
                性别:<asp:Label ID="Label3" runat="server" Text='<%# Eval("sex") %>'></asp:Label>
                <br />
                <br />
                <asp:Button ID="btnedit" runat="server" CommandName="edit" Text="编辑" />
                &nbsp;&nbsp;
                <asp:Button ID="btndelete" runat="server" CommandName="delete" Text="删除" />
                <br />
                <br />
                <asp:Button ID="Button1" runat="server" CommandArgument='<%# Eval("sid") %>' 
                    CommandName="Buy" Text="加入购物车" />
                <br />
                <br />
                <br />
            </ItemTemplate>
        </asp:DataList>
     <asp:Button ID="btnfirst" runat="server"  Text="首页" Xonclick="btnfirst_Click" />
        <asp:Button ID="btnprew" runat="server" Text="前一页" Xonclick="btnprew_Click" />
        <asp:Button ID="btnnext" runat="server" Text="后一页" Xonclick="btnnext_Click" />
        <asp:Button ID="btnlast" runat="server"  Text="最后一页" Xonclick="btnlast_Click" />
        <br />
        <br />
        <asp:HiddenField ID="HiddenField1" runat="server" />
        <asp:HiddenField ID="HiddenField2" runat="server" />
    </div>


aspx.cs文件:


protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                bindProduct(3,1);
            }
        }
        private void bindProduct(int pageSize,int pageIndex)
        {
            string sp_name = "sp_Student_Select_by_Page_rowNumber";
            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.ExecuteScalar(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_CancelCommand(object source, DataListCommandEventArgs e)
        {
            this.DataList1.EditItemIndex = -1;
            this.bindProduct(3,1);
        }


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


        protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
        {
            string name = (e.Item.FindControl("TextBox1") as TextBox).Text;
            string sex = (e.Item.FindControl("TextBox3") as TextBox).Text;
            string age = (e.Item.FindControl("TextBox2") as TextBox).Text;
            string sql = "update student set sname=@name,age=@age,sex=@sex 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.ExecuteNoQuery(sql, pms);
        }


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


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


        protected void btnprew_Click(object sender, EventArgs e)
        {
           int index= Convert.ToInt32(this.HiddenField1.Value);
           if (index>1)
           {
                index--;
           }
            this.bindProduct(3, 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(3, index);
        }


        protected void btnlast_Click(object sender, EventArgs e)
        {
            this.bindProduct(2, Convert.ToInt32(this.HiddenField2.Value));
        }


2.repeater实现样式设置,并添加删除按钮,参考课上老师做的案例。


aspx文件;


<style type="text/css">
    .big_img img
    {
        border:1px solid #ccc;
        width:100px;
        height:100px;
        }
    .big_img:hover img
    {
        height:200px;
        width:200px;
        display:inline;
        border:1px solid navy;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Repeater ID="Repeater1" runat="server" 
            Xonitemcommand="Repeater1_ItemCommand">
        <HeaderTemplate>
        <table border="" width="100%">
        <tr><th>姓名</th><th>性别</th><th>年龄</th><th>照片</th><th>操作</th></tr>
        </HeaderTemplate>
        <ItemTemplate>
         <tr class="center" align="center">
          <td><%#Eval("sname")%></td><td><%#Eval("sex")%></td><td><%#Eval("age")%></td>
          <div style=" display:inline; position:relative;">
          <td><a href="#" class="big_img"><img src='<%#"images/"+Eval("photo")%>' /></a></td>
          <td>
              <asp:LinkButton ID="btnDelete" runat="server" Text="删除" CommandName="delete" CommandArgument='<%#Eval("sid")%>'>删除</asp:LinkButton>
          </td> 


</div>
         </tr>
        </ItemTemplate>
        <FooterTemplate></table></FooterTemplate>


        <AlternatingItemTemplate>
        <tr class="center" align="center" style=" background-color:#e8e8e8;">
          <td><%#Eval("sname")%></td><td><%#Eval("sex")%></td><td><%#Eval("age")%></td>
          <div style=" display:inline; position:relative;">
          <td><a href="#" class="big_img"><img src='images/<%#Eval("photo")%>' /></a></td>
          </div>
          <td>
              <asp:LinkButton ID="btnDelete" runat="server" Text="删除" CommandName="delete" CommandArgument='<%#Eval("sid")%>'>删除</asp:LinkButton>
          </td> 


</tr>
        </AlternatingItemTemplate>
        </asp:Repeater>
    </div>


aspx.cs文件:


protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                 BingUsers();
            }
           
        }


        private void BingUsers()
        {
            string sql = "select * from student";
            DataTable dt = SqlHelper.ExecuteDataTable(sql, CommandType.Text);
            this.Repeater1.DataSource = dt;


            this.Repeater1.DataBind();
        }


        protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            if (e.CommandName=="delete")
         {
                string sql = "delete from student where sid=@sid";
                SqlParameter p1 = new SqlParameter("@sid", e.CommandArgument.ToString());
                SqlHelper.ExecuteNoQuery(sql, p1);
                this.BingUsers();


         }


3.数据表添加字段status,使用repeater实现禁用与启用。


aspx文件:


<style type="text/css">
    .big_img img
    {
        border:1px solid #ccc;
        width:100px;
        height:100px;
        }
    .big_img:hover img
    {
        height:200px;
        width:200px;
        display:inline;
        border:1px solid navy;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Repeater ID="Repeater1" runat="server" 
            Xonitemcommand="Repeater1_ItemCommand">
        <HeaderTemplate>
        <table border="" width="100%">
        <tr><th>姓名</th><th>性别</th><th>年龄</th><th>照片</th><th>操作</th></tr>
        </HeaderTemplate>
        <ItemTemplate>
         <tr class="center" align="center">
          <td><%#Eval("sname")%></td><td><%#Eval("sex")%></td><td><%#Eval("age")%></td>
          <div style=" display:inline; position:relative;">
          <td><a href="#" class="big_img"><img src='<%#"images/"+Eval("photo")%>' /></a></td>


<td>
              <asp:LinkButton ID="shifouyong" runat="server" Text='<%#Convert.ToBoolean( Eval("status"))?"禁用":"启用"%>' CommandName='<%#Convert.ToBoolean( Eval("status"))?"false":"true"%>' CommandArgument='<%#Eval("sid")%>'><%#Convert.ToBoolean( Eval("status"))?"禁用":"启用"%></asp:LinkButton>
          </td>       
          </div>
         </tr>
        </ItemTemplate>
        <FooterTemplate></table></FooterTemplate>


        <AlternatingItemTemplate>
        <tr class="center" align="center" style=" background-color:#e8e8e8;">
          <td><%#Eval("sname")%></td><td><%#Eval("sex")%></td><td><%#Eval("age")%></td>
          <div style=" display:inline; position:relative;">
          <td><a href="#" class="big_img"><img src='images/<%#Eval("photo")%>' /></a></td>
          </div>


<td>
              <asp:LinkButton ID="shifouyong" runat="server" Text='<%#Convert.ToBoolean( Eval("status"))?"禁用":"启用"%>' CommandName='<%#Convert.ToBoolean( Eval("status"))?"false":"true"%>' CommandArgument='<%#Eval("sid")%>'><%#Convert.ToBoolean( Eval("status"))?"禁用":"启用"%></asp:LinkButton>
          </td> 
         </tr>
        </AlternatingItemTemplate>
        </asp:Repeater>
    </div>


aspx.cs文件:


protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                 BingUsers();
            }
           
        }


        private void BingUsers()
        {
            string sql = "select * from student";
            DataTable dt = SqlHelper.ExecuteDataTable(sql, CommandType.Text);
            this.Repeater1.DataSource = dt;


            this.Repeater1.DataBind();
        }


  protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
           if (e.CommandName == "false" || e.CommandName == "true")
            {
                string sql = "update student set status=@status where sid=@sid";
                SqlParameter[] prm = new SqlParameter[]
                {
                    new SqlParameter("@status",e.CommandName),
                    new SqlParameter("@sid",e.CommandArgument.ToString())
                };


                SqlHelper.ExecuteNoQuery(sql, prm);
                this.BingUsers();


            }


 
原创粉丝点击