[英]How to delete a row in gridview after clicking the delete button in a form
我有一个aspx页面,该页面具有3个字段和一个“更新”按钮的gridview。 当我单击“更新”按钮时,我将被重定向到另一个aspx页面,该页面具有一个表单,其中包含有关通过单击“更新”按钮选择的网格视图中条目的更多信息。 该表单包含更多字段和一个按钮“删除”。 当我单击按钮“删除”时,我需要关闭打开的表单并返回到gridview并删除该条目。 我在我的gridview中使用TemplateField。
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField ShowHeader="False" HeaderText=" ">
<ItemTemplate>
<asp:Button ID="Btn_Update" Text="Update" runat="server" ButtonType="Button" CommandName="update" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="ID" HeaderText="ID" />
<asp:BoundField DataField="FirstName" HeaderText="First Name" />
<asp:BoundField DataField="LastName" HeaderText="Last Name" />
</Columns>
</asp:GridView>
这是我单击表单中的“删除”按钮以将其关闭并返回到gridview之后的代码:
protected void btn_Delete_Click(object sender, EventArgs e)
{
#region Redirect to Page
Page.ClientScript.RegisterStartupScript(this.GetType(), "RefreshParent", "<script language='javascript'>RefreshParent()</script>");
Response.Write("<script>window.close();</" + "script>");
#endregion
ClearData();
}
单击表单中的“删除”按钮后,如何从gridview中删除行? 谢谢你们
这是一些示例代码,因此您可以理解。 它是WPF + C#,而不是Web,但您应该有所作为。 想法是一样的。
您的主要程序:
public delegate void DeleteRow(bool doDelete);
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
int selectedRow = 0;
public DeleteRow deleteRowDelegate;
public void ReportDelete(bool delete)
{
// Delete the row here.
}
public MainWindow()
{
InitializeComponent();
deleteRowDelegate += new DeleteRow(ReportDelete);
}
private void btnOK_Click(object sender, RoutedEventArgs e)
{
// Here, get the row number to selectedRow.
SecondaryWin win = new SecondaryWin(deleteRowDelegate);
win.ShowDialog();
// At this point, if DELETE was clicked in your secondary window, code would have executed ReportDelete() method.
}
}
这将是您的辅助窗口:
public partial class SecondaryWin : Window
{
DeleteRow callbackDel;
public SecondaryWin(DeleteRow callback)
{
InitializeComponent();
callbackDel = callback;
}
private void btnDel_Click(object sender, RoutedEventArgs e)
{
callbackDel.Invoke(true);
// Close the window
}
}
因此,在您的主窗口中,将ReportDelete()方法注册到DeleteRow委托中,然后将其传递到辅助窗口中。 我已经在构造函数中传递了它,但是您可以根据需要使用其他方法。
然后,在我的辅助窗口中,当您单击DELETE按钮并退出该窗口时,可以调用该委托。
回到Main()中,每当在辅助窗口中单击DELETE时,它将在ReportDelete()方法中执行代码,您可以在其中删除该特定行。 为此,请使用selectedRow。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.