簡體   English   中英

單擊表單中的刪除按鈕后如何在gridview中刪除行

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM