1

我在一个论坛中有很多 ASP.NET 控件。如果我更改浏览器中的值并回发。在 C# 中显示它需要 2 次回发,这是为什么呢?

4

3 回答 3

3

您是否在重新填充控件之前保存了值?如果不是,您的控件可能会显示陈旧的值,然后您保存,因此直到第二次回发和随后的渲染您才能看到更改。

于 2012-07-27T20:35:10.633 回答
0

事实证明,我正在重新加载事件控件,该事件会在数据到达 Page_Load 之前刷新数据。

于 2012-07-28T18:12:19.350 回答
0

您是否确保在保存更改后再次调用您的 Binding 方法?如果不是,则您的页面正在回发,但使用的是在您保存更改之前它拥有的原始 ViewState。一个典型的过程看起来像这样。

// In your page load
if (!Page.IsPostBack())
{
   BindData();   // This calls the binding method the first time you hit the page.
}

// In your button click event
if (Page.IsValid())
{
   UpdateData();
   BindData();   // If you don't call this method, you'll post back, but not rebind.
}

// In your BindData method
txtThis.Text = data.this;
txtThat.Text = data.that;
于 2012-07-27T20:41:59.797 回答