Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用gridview中的LinkButton删除代码隐藏文件中选定的用户名?_C#_Asp.net_Gridview_Linkbutton - Fatal编程技术网

C# 如何使用gridview中的LinkButton删除代码隐藏文件中选定的用户名?

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”(

我的“JobPost.mdf”中有一个“UserDetail”表。 我有一个“Gridview1”,显示“UserDetail”表中的列,该表有一个主键“UserName”。 此“用户名”最初是使用成员资格类函数保存的。 现在,我向GridView1添加了一个“删除”链接按钮。这个“删除”按钮不是自动生成按钮,我从工具箱中将它拖到列itemtemplate中。 GridView1的列现在变成“Delete_LinkButton”+“UserName”(在UserDetail表中)+“City”(在UserDetail表中)+“IsAdmin”(在UserDetail表中)

我需要的是,通过单击此“delete_linkButton”,它将仅从“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_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
属性,其中tye
UserName
是。

请查看此[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();
}