[英]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.