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(, que);//自己定义的一个DBSqlHelp类,执行sql语句] } }
上一篇:基于OpenPCDet框架的基线模型下载及性能评估


下一篇:2022年值得关注的22项新兴技术