当在前台我们绑定了一个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[0].FindControl("n0")).Value; //然后获取id,我的id类型为HiddenField
Int64 _id = Convert.ToInt64(id1); //执行删除云云......
}