当用户从GridView中选择任何记录时,我的DetailView将根据GridView的选择进行更新.所以我想要做的是,当我从DetailView中删除任何东西然后我想刷新GridView所以基本上我不想在GridView中显示已删除的记录.我试图通过在连接和SQL语句之后执行数据绑定来解决此问题,但它不会刷新它.需要注意的一点是我使用的是Accordion窗格,但我的gridview和detailview都在同一个窗格中.我不确定这是否会破坏任何东西.这是我的代码:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
小智 7
您可以使用名为"ItemDeleted"的数据视图的事件,如下所示:
DetailViewName_ItemDeleted(object sender,
DetailsViewDeletedEventArgs e)
{
// Refresh the GridView control after a new record is updated
// in the DetailsView control.
GridViewName.DataBind();
}
Run Code Online (Sandbox Code Playgroud)
以上代码来自官方MSDN网站,用于详细视图控制.
另一种方法(我喜欢)是在处理数据网格Page_load的过程,所以当你按下详细视图中的删除按钮,页面会执行回发.
因此,在该过程中,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();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9666 次 |
| 最近记录: |