Reapter 添加删除按钮

repeater中的删除按钮和datagrid下的删除在实现上,还是有一定的区别的,由于repeater在客户端生成的html代码是非常干净的,所以特别受到众多web2.0网站的欢迎(不像datagrid生成的table),但是由于repeater集成了较少的功能,高可定制化,也带来了开发的难度。比如如果在datagrid下面要删除一行数据,那么仅仅是一个linkbutton,然后在datagrid    delete command事件中编写删除代码再重新绑定来实现,但是在repeater中,却不能那样做,因为你几乎没有办法再那个事件中定位是哪行触发的删除事件。

方法一

采用的一个QueryString传参数的办法,在前台绑定的时候,采用如下代码:

<td align="center" class="Login2"><a href =User.aspx?Delid=<%#Eval("id")%>>删除</a></td>

 后台page_load()代码如下:

protected void Page_Load(object sender, EventArgs e)
    {
       //注意数据绑定
        DelItemByid();
        
    }
protected void DelItemByid()
    {
        if (Request.QueryString["Delid"] != null)
        {
            SqlConnection Conn = new SqlConnection(pn163.strConn);

            Conn.Open();
            SqlCommand Cmd = new SqlCommand("delete from Admin where id=" + Request.QueryString["Delid"], Conn);
            Cmd.ExecuteNonQuery();
            Conn.Close();
            Response.Redirect("User.aspx");
            Conn.Close();
        }
    }
 

 方法二

前台:
1)、添加repeater的事件属性 OnItemCommand="Repeater1_ItemCommand"

2)、添加删除按钮

<asp:LinkButton ID="lbtDelete" runat="server" CommandName="delete" CommandArgument='<%# Eval("id") %>'  Text="删除" OnClientClick="return confirm('你真的要删除吗?');"></asp:LinkButton>
 


后台:
  1)、写repeater事件OnItemCommand

protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)

    {

                if (e.CommandName == "delete") //删除操作
        {

            string que = "delete from [gz_gzsrb] where id='" +e.CommandArgument.ToString().Trim()+ "'";

            DBSqlHelp.ExecuteSql(3, que);//自己定义的一个DBSqlHelp类,执行sql语句]

        }

}
原文地址:https://www.cnblogs.com/wuling129/p/4521500.html