1

在我们的 ASP.Net 4.0 C# Web 应用程序中,我在调试期间在主题行中收到上述错误。

我并没有真正对页面上的动态控件做任何时髦的事情,因为某些搜索结果表明可能是问题的根源。

该页面有 2 个ajax:CalendarExtenders,并且已经正常工作了一段时间。

虽然它可能是相关的,但我可以看到这是多么真实,但这就是我当前正在处理的错误。

我们在页面上有一个控件,该控件在自动刷新功能上引发事件。[它是一个地图控件]。

我的页面订阅了该事件,并且在这样做时 DataBinds 一个asp:GridView. 我们每次都需要绑定网格中的数据,保证网格和地图控件同步。[这是一个车辆跟踪页面]

错误发生在 DataBind 命令上。

我删除了扩展器只是为了提出同样的错误。

数据绑定很简单,但我确信错误存在于其他地方。无论如何我都会包括它。

this.SearchGrid.DataSource = resultsWithMetrics;

        this.SearchGrid.AllowPaging = true;
        this.SearchGrid.PageIndex = this.SearchGridPager.CurrentPage;
        this.SearchGrid.AllowPaging = this.SearchGridPager.PageSize > 0;
        this.SearchGrid.PageSize = this.SearchGridPager.PageSize > 0 ? this.SearchGridPager.PageSize : this.SearchGrid.PageSize;

        this.SearchGrid.DataBind();

也许它根本不了解让我绊倒的页面生命周期,无论如何都会很高兴得到一些帮助。

4

2 回答 2

1

在您的用户控件或页面控件中使用以下代码。如果您使用任何 ajax 控件,它将起作用。

protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        if (this.DesignMode == true)
        {
            this.EnsureChildControls();
        }
        this.Page.RegisterRequiresControlState(this);
    } 
于 2011-09-18T11:29:55.477 回答
0

问题是在行数据绑定上,扩展器控件被添加到每一行,正是这些扩展器导致了问题。

触发重新绑定的事件来自一个用户控件,该控件使用回调与服务器通信,随后引发了可能在页面生命周期中无论如何都来得太晚的事件。

在没有完全理解发生了什么的情况下,这一切都闻起来有点狡猾,我已经稍微改变了应用程序的结构。

于 2011-03-26T12:59:37.727 回答