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

时间:2012-02-01 09:00:40

标签: asp.net gridview

所以我有一个带有两个控件的ASP.NET页面:

  • 一个GridView,显示来自SqlDataSource的行,用户可以在其中选择一行;
  • 一个DetailsView,用户可以在其中看到并编辑所选行的值。

DetailsView可以更新基础数据,但即使页面重新加载,GridView仍会显示旧数据,直到我手动在浏览器中重新加载页面。

如何在GridView更新后确保DetailsView显示正确的数据?

P.S。值得注意的是due to reasons outlined in this other question,我必须使用OnItemUpdating的自定义DetailsView事件。此事件执行SQL更新命令(成功),将DetailsView设置回ReadOnly模式(退出编辑模式),然后取消事件(e.Cancel = true)。如果此事件取消也会以某种方式取消GridView更新,我该如何手动告诉它自行更新?

PPS:我发现了this similar question,但答案不起作用:它将整个页面重置为原始状态,这意味着GridView丢失了所选行和DetailsView消失。我不希望这样。

2 个答案:

答案 0 :(得分:3)

页面加载

YourGridViewID.DataBind()

答案 1 :(得分:0)

如果您的OnItemUpdating事件生成回发

protected void Page_Load(object sender, EventArgs e)
{
    if (IsPostBack)
    {
        GridView.DataBind();//rebinding it with considering changes DetailView
    }
}

如果不起作用,请告诉我。