我想删除更新面板中Gridview中的一行。但是,我没有使用命令按钮,而是使用链接按钮来获取确认消息。现在,如果我按下确定,则应删除记录(来自db和frm girdview)。我知道如何从db中删除但不按下linkbutton时删除记录。并且gridview也在更新面板中。因此应该反映出来。
示例代码表示赞赏。
由于
答案 0 :(得分:3)
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Delete")
{
GridViewRow row = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);
String productId = row.Cells[0].Text; // I suposed your product Id in very first column in gridview
//Delete Code goes here..........
...........................
}
}
答案 1 :(得分:1)
您可以使用gridview的RowCommand
事件,例如......
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Delete")
{
e.CommandArgument -- this return Data Key Value
//Deletion Code goes here.....
var brochureToDelete = (from b in dataContext.ArticleBrochures where b.ArticleId == ArticleId select b).FirstOrDefault();
if (brochureToDelete != null)
{
dataContext.ArticleBrochures.DeleteOnSubmit(brochureToDelete);
dataContext.SubmitChanges();
bindBrochureGridView(ArticleId);
// if your gridview in updatepanel
//Call update method of UpdatePanel
//UpdatePanel.Update();
}
}
答案 2 :(得分:0)
将PK_ID
设置为链接按钮的命令args,如
<asp:LinkButton runat="server" ID="btn_manage" Text="Delete" CommandArgument='<%#Eval("PK_ID") %>'
OnCommand="btn_manage_click">
</asp:LinkButton>
并在事件
上访问此PK_ID
protected void btn_manage_click(object sender, CommandEventArgs e)
{
string ID = e.CommandArgument.ToString();
//you delete code and gridview bind code
}
答案 3 :(得分:0)
将linkbutton id绑定为主键。在客户端上单击链接按钮将该ID保存在隐藏字段中。此隐藏字段值将是要删除的行的ID。
然后在服务器上单击链接按钮,删除与隐藏字段值对应的行
答案 4 :(得分:0)
我认为你有一个发送删除查询的方法。
创建一个RowDeleting
事件处理程序,使用e.RowIndex
将行索引传递给delete方法。
使用此e.RowIndex
编写查询以删除表格的第n行。然后将数据绑定到gridView。