繁体   English   中英

GridView在回发DetailsView时没有数据绑定

[英]GridView not data binding on postback of DetailsView

我有同样的问题:

当基础数据更改时,GridView内容不会更新

但是提供的答案对我不起作用,我想得到点创意,因为到目前为止,我已经浪费了3天的时间来尝试使GridView在DetailsView的回发中刷新。

情况是这样的:

我有一个GridView,当选择一行时,DetailsView将显示详细信息。 在。

单击编辑后,DetailsView进入“编辑”模式。

我对其进行编辑,然后单击“更新”按钮。

该更新会触发一个事件,并且它会正确更新我的SQL数据库表。

尽管有100篇文章说使用GridView1.Databind();但问题仍然存在。 在单击“取消”按钮之前,它不会刷新。

我知道它已发回,因为我已调试它并在Page_load(...)回发中看到了它。

我已经添加了

SqlDataSource1.DataBind();

GridView1.DataBind()

到以下位置,似乎都没有刷新GridView。

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        ...
    }
    else
    {
    SqlDataSource1.DataBind();
    GridView1.DataBind();
    }
}

protected void DetailsView1_ItemUpdating(object sender,   DetailsViewUpdateEventArgs e)
{
   GridView1.DataBind();
}

protected void DetailsView1_ItemUpdated(object sender, DetailsViewUpdatedEventArgs e)
{
    //GridView.SelectedIndex = -1;
   SqlDataSource1.EnableCaching = false;
    // UpdatePanel14.Update();
    SqlDataSource1.DataBind();
    GridView1.DataBind();
    SqlDataSource1.EnableCaching = true;
    // EndEditingGridView();
}

因此,正如您所看到的,我也尝试了在Details_View的Updating and Updated的Page_Load()下进行回发。 我也尝试过在GridView上设置“ ViewState = Disabled”。 除非我单击“取消”按钮,否则似乎无法使它更新其内容。 谢谢。

我从以前的工作中找到了答案,发现工作是删除Gridviews数据源,重置其索引并对其进行数据绑定。 然后更新UpdatePanel,然后重新连接gridview并再次对其进行数据绑定。

我的函数,在我的DetailsView1_ItemUpdated()事件末尾调用:

private void EndEditingDetailsView1()
{
    GridView.DataSourceID = null;
    GridView.EditIndex = -1;
    GridView.DataBind();

    DetailsUpdatePanel.DataBind();
    DetailsUpdatePanel.Update(); 

    GridView.DataSourceID = "SqlDataSource";
    GridView.EditIndex = -1;
    GridView.DataBind();
}

工作请客。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM