繁体   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