c# - 使用 C# 从 DetailView 中删除数据后刷新 GridView

标签 c# asp.net

当用户从 GridView 中选择任何记录时,我的 DetailView 会根据 GridView 的选择进行更新。所以我想做的是,当我从 DetailView 中删除任何内容时,我想刷新 GridView,所以基本上我不想在 GridView 中显示已删除的记录。我试图通过在我的连接和 SQL 语句之后进行数据绑定(bind)来解决此问题,但它不会刷新它。需要注意的一件事是我使用的是 Accordion Pane ,但我的 gridview 和 detailview 都在同一个 Pane 中。我不确定这是否会破坏任何东西。这是我的代码:

protected void Refresh_ItemCommand(object sender, DetailsViewCommandEventArgs e)
    {
        if (e.CommandName.Equals("Delete", StringComparison.CurrentCultureIgnoreCase))
        {

            SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString);
            SqlDataAdapter da = new SqlDataAdapter("select ID, Name, Address from dbo.MyTable", con);
            DataTable dt = new DataTable();
            da.Fill(dt);
            Gridview1.DataSource = dt;
            Gridview1.DataBind();
        }

    }

最佳答案

您可以使用名为“ItemDeleted”的数据 View 的事件,如下所示:

  DetailViewName_ItemDeleted(object sender, 
    DetailsViewDeletedEventArgs e)
  {
    // Refresh the GridView control after a new record is updated 
    // in the DetailsView control.
    GridViewName.DataBind();
  }

以上代码来自official MSDN site用于详细 View 控制。

另一种方法(我更喜欢)是在 Page_load 过程中处理数据网格,这样当您在详细 View 中按下删除按钮时,页面将执行回发。

因此,在过程 Page_load 中,您可以调用另一个过程来填充数据网格。代码可能是这样的:

if (isPostback)
{
  FillGrid();    
} 

private void FillGrid()
{

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString);
            SqlDataAdapter da = new SqlDataAdapter("select ID, Name, Address from dbo.MyTable", con);
            DataTable dt = new DataTable();
            da.Fill(dt);
            Gridview1.DataSource = dt;
            Gridview1.DataBind();
}

关于c# - 使用 C# 从 DetailView 中删除数据后刷新 GridView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14266054/

相关文章:

c# - 有没有办法实现特定类型转换的方法?

c# - 当 "User must change password on next log on"时,LDAP 验证失败。有什么解决办法吗?

c# - .NET 中是否有一些流 "pipe"类?

c# - 将数据表绑定(bind)到 gridview 的问题

asp.net - 页面回调中无法调用响应重定向?

c# - 如何在静态函数中选择<T>

javascript - 如何在文本区域显示来自服务器的数据

asp.net - 在服务器上运行的 jquery 和 html 元素

asp.net - 如何使用 Excel 服务器端?

c# - 如何删除字符串?