如何在gridview中使用LinkBut​​ton删除代码隐藏文件中的选定用户名?

我的“JobPost.mdf”中有一个“UserDetail”表。 我有一个“Gridview1”显示“UserDetail”表中的列,该表具有主键“UserName”。 此“UserName”最初使用Membership类function保存。 现在我向GridView1添加一个“删除”链接按钮。 这个“删除”不是自动生成按钮,我从ToolBox中拖动了列itemtemplate。 GridView1的列现在变为“Delete_LinkBut​​ton”+“UserName”(在UserDetail表中)+“City”(在UserDetail表中)+“IsAdmin”(在UserDetail表中)

我需要的是通过单击这个“delete_linkBut​​ton”,它只会从“UserDetail”表中删除同一行上的整个用户实体(通过相应的“UserName”链接),以及从AspNetDB中删除所有信息。 mdf(用户,会员,UserInRole等)。

我想用一个用户确认,但不是强制性的。 至少我试图以正确的方式使其正常运行。

for example: Command UserName City IsAdmin delete ken Los Angles TRUE delete jim Toronto FALSE 

当我在第一行单击“删除”时,我需要删除“UserDetail”表中有关“ken”的所有记录。 同时,AspNetDB.mdf中关于“ken”的所有记录都将消失,包括UserinRole表。

我是asp.net的新手,所以我不知道如何将“Delete_LinkBut​​ton”的命令参数传递给代码隐藏文件LinkBut​​ton1_Click(对象发送者,EventArgs e),因为我需要一个额外的参数“UserName”。

我的部分代码如下:

   <asp:LinkButton ID="Delete_LinkButton" runat="server" onclick="LinkButton1_Click1" CommandArgument=''>LinkButton   protected void Delete_LinkButton_Click(object sender, EventArgs e) { ((LinkButton) GridView1.FindControl("Delete_LinkButton")).Attributes.Add("onclick", "'return confirm('Are you sure you want to delete {0} '" + UserName); Membership.DeleteUser(UserName); JobPostDataContext db = new JobPostDataContext(); var query = from u in db.UserDetails where u.UserName == UserName select u; for (var Item in query) { db.UserDetails.DeleteOnSubmit(Item); } db.SubmitChanges(); } 

请帮忙!

要进行确认,您应该将脚本添加到LinkBut​​ton的OnClientClick属性:

  LinkButton  

您的该按钮的事件处理程序应该是:

 protected void Delete_LinkButton_Click(object sender, EventArgs e) { string userName = ((LinkButton)sender).CommandArgument.ToString(); Membership.DeleteUser(UserName); JobPostDataContext db = new JobPostDataContext(); foreach (var item in db.UserDetails.Where(u => u.UserName == userName)) db.UserDetails.DeleteOnSubmit(Item); db.SubmitChanges(); } 

OnClientClick属性将您写入的JavaScript添加到呈现的标记的onclick属性的 。 因此,如果用户未确认删除,则将返回false并且不执行任何操作。 否则,它将执行回发删除。

在事件处理程序中, sender始终是发起事件的控件。 在这种情况下, LinkButton 。 因此,您可以将其强制转换为LinkButton并获取其CommandArgument属性,其中tye是UserName