2

我有一个复合控件,里面有一个 DropDownList。

我遇到的问题是下一个问题:当我在 Page_Load 上加载数据时(第一次加载页面)一切正常,但是当有回发并且我想刷新数据源时(我的意思是,使用不同的一),数据源保存到ViewState,但不数据绑定到下拉列表。

我发现这是因为页面生命周期从第一次渲染到第二次发生了变化:

  • 第一次:Page_Load - CreateChildControls
  • 第二次: CreateChildControls - Page_Load - Function_Called_On_Postback

所以我的问题是我在CreateChildControls()中进行数据绑定,但数据源设置在Function_Called_On_Postback()上,因此下拉列表没有得到更改。

你知道我该如何解决这个问题吗?你至少有一个建议吗?

非常感谢!

4

1 回答 1

0

我假设回发是由页面上的某些事件引起的,例如我们的 DDL 上更改的选定索引或按钮的单击事件。如果是这种情况,那么您应该能够在相关事件的事件处理程序方法中设置 DDL 的数据源。

为了使其正常工作,您必须在 Page_Load 方法中在初始加载时加载 DDL 数据,而不是在回发时加载。这可以通过 Page.IsPostBack 检查。

if(!Page.IsPostBack) { /* initial load data binding of the DDL */ }
于 2014-04-23T19:43:23.997 回答