C# 如何使用gridview中的LinkButton删除代码隐藏文件中选定的用户名?
我的“JobPost.mdf”中有一个“UserDetail”表。 我有一个“Gridview1”,显示“UserDetail”表中的列,该表有一个主键“UserName”。 此“用户名”最初是使用成员资格类函数保存的。 现在,我向GridView1添加了一个“删除”链接按钮。这个“删除”按钮不是自动生成按钮,我从工具箱中将它拖到列itemtemplate中。 GridView1的列现在变成“Delete_LinkButton”+“UserName”(在UserDetail表中)+“City”(在UserDetail表中)+“IsAdmin”(在UserDetail表中) 我需要的是,通过单击此“delete_linkButton”,它将仅从“UserDetail”表中删除同一行上的整个用户实体(通过相应的“UserName”链接),以及从AspNetDB.mdf中删除所有信息(用户、成员资格、UserInRole等) 我想启动一个用户确认,但不是强制性的。至少我正在努力使它以正确的方式发挥作用C# 如何使用gridview中的LinkButton删除代码隐藏文件中选定的用户名?,c#,asp.net,gridview,linkbutton,C#,Asp.net,Gridview,Linkbutton,我的“JobPost.mdf”中有一个“UserDetail”表。 我有一个“Gridview1”,显示“UserDetail”表中的列,该表有一个主键“UserName”。 此“用户名”最初是使用成员资格类函数保存的。 现在,我向GridView1添加了一个“删除”链接按钮。这个“删除”按钮不是自动生成按钮,我从工具箱中将它拖到列itemtemplate中。 GridView1的列现在变成“Delete_LinkButton”+“UserName”(在UserDetail表中)+“City”(
for example:
Command UserName City IsAdmin
delete ken Los Angles TRUE
delete jim Toronto FALSE
当我单击第一行上的“删除”时,我需要删除“UserDetail”表中关于“ken”的所有记录。同时,AspNetDB.mdf中关于“ken”的所有记录都将消失,包括UserinRole表
我是asp.net新手,所以我不知道如何将“Delete_LinkButton”的commandargument传递给文件LinkButton1_Click(objectsender,EventArgs e)后面的代码,因为我需要一个额外的参数“UserName”
我的部分代码如下所示:
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="Delete_LinkButton" runat="server" onclick="LinkButton1_Click1" CommandArgument='<%# Eval("UserName","{0}") %>'>LinkButton</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
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();
}
链接按钮
受保护的无效删除链接按钮单击(对象发送者,事件参数e)
{
((LinkButton)GridView1.FindControl(“Delete_LinkButton”)).Attributes.Add(“onclick”、“'return confirm('您确定要删除{0}'”)”和用户名);
Membership.DeleteUser(用户名);
JobPostDataContext db=新的JobPostDataContext();
var query=来自db.UserDetails中的u
其中u.UserName==用户名
选择u;
for(查询中的var项)
{
db.UserDetails.deleteoSubmit(项目);
}
db.SubmitChanges();
}
请提供帮助!要确认,应将脚本添加到链接按钮的
OnClientClick
属性中:
<asp:LinkButton
ID="Delete_LinkButton"
runat="server"
onclick="LinkButton1_Click1"
CommandArgument='<%# Eval("UserName","{0}") %>'
OnClientClick='if (!confirm("Are you sure you want to delete <%# Eval("UserName","{0}") %>?")) return false;'
>
LinkButton
</asp:LinkButton>
OnClientClick
属性将您写入其中的JavaScript添加到呈现的
标记的onclick属性中。因此,如果用户不确认删除,它将返回false,不执行任何操作。否则,它将执行回发以删除
在事件处理程序中,
sender
始终是发起事件的控件。在本例中,LinkButton
。因此,您可以将其强制转换为LinkButton
,并获取其CommandArgument
属性,其中tyeUserName
是。请查看此[ASP.NET GridView Button事件][1].希望它能帮到你。[1]:
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();
}