c# gridview数据列表中NamingContainer容器的用法

时间:2023-03-08 17:13:41

当在前台我们绑定了一个linkbutton型的按钮,并触发了onserverclick="delBook_Server"的服务端事件,前台代码如下:

<asp:TemplateField HeaderText="删除">
<ItemTemplate >
<a class="circle-btn admin_edit f1" onclick="javascript:return delBook(this)" onserverclick="delBook_Server" ID="btnDelete" runat="server" > <span><i class="imgDelIcon"></i>删除此书</span></a>
</ItemTemplate>
<HeaderStyle Width="150px" HorizontalAlign="Center"></HeaderStyle>
<HeaderStyle BackColor="#507CD1" />
</asp:TemplateField>

在数据列表的索要删除的行的第一列是id标识,现在的问题是,如何获取id,并在数据库中删除,这是候我们可以通过sender参数获取触发了删除按钮的这一行。

protected void delBook_Server(Object Sender, EventArgs e)
{
HtmlAnchor s = (HtmlAnchor)Sender;
    //强制转换为锚标记
GridViewRow g = (GridViewRow)s.Parent.NamingContainer;
//将他的父容器NamingContainer强制转换为GridViewRow
string id1 = ((HiddenField)g.Cells[].FindControl("n0")).Value;
//然后获取id,我的id类型为HiddenField
Int64 _id = Convert.ToInt64(id1);
     //执行删除云云......    
}