我有一个aspx页面,其中包含3个字段的gridview和一个“Update”按钮。当我点击“更新”按钮时,我将被重定向到另一个aspx页面,该页面的表单包含有关网格视图中通过单击“更新”按钮选择的条目的更多信息。表单包含更多字段和一个“删除”按钮。当我单击“删除”按钮时,我需要关闭打开的表单并返回到gridview并删除该条目。我正在使用TemplateField来进行gridview。
<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中删除该行?谢谢大家
答案 0 :(得分:0)
这是一些示例代码,因此您可以了解相关信息。它是WPF + C#,而不是网络,但你应该得到漂移。这个想法是一样的。
您的主要计划:
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。