【问题标题】:GridView contents don’t update when underlying data changes底层数据更改时,GridView 内容不会更新
【发布时间】:2012-02-01 09:00:40
【问题描述】:

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

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

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

如何确保GridViewDetailsView更新后显示正确的数据?

附:注意due to reasons outlined in this other question 可能很重要,我必须使用带有DetailsView 的自定义OnItemUpdating 事件。此事件执行 SQL 更新命令(成功),将DetailsView 设置回只读模式(退出编辑模式),然后取消事件(e.Cancel = true)。如果此事件取消也以某种方式取消了GridView 更新,我如何手动告诉它自行更新?

P.P.S.:我发现了 this similar question,但答案不起作用:它将整个页面重置为原始状态,这意味着 GridView 丢失其选定的行并且 DetailsView 消失。我不想要那个。

【问题讨论】:

    标签: asp.net gridview


    【解决方案1】:

    在页面加载时:

    YourGridViewID.DataBind()
    

    【讨论】:

    • 完美!谢谢!我将它添加到 DataViewOnItemUpdating 处理程序的末尾,而不是 Page_Load()
    【解决方案2】:

    如果您的OnItemUpdating 事件生成回发

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-23
      • 1970-01-01
      相关资源
      最近更新 更多