我有一个复合控件,里面有一个DropDownList。
我遇到的问题是下一个问题:当我在Page_Load上加载数据时(第一次加载页面)一切正常,但是当有回发时我想刷新数据源(我的意思是,如果使用不同的数据源,则数据源将保存到ViewState,但不会保存到下拉列表中。
我发现这种情况正在发生,因为页面生命周期从第一次渲染到第二次时发生了变化:
所以我的问题是我在 CreateChildControls()中执行数据绑定,但数据源是在 Function_Called_On_Postback()上设置的,因此,下拉列表没有&#39 ;得到改变。
你知道我该如何解决这个问题吗?你有至少一个建议吗?
非常感谢!
答案 0 :(得分:0)
我假设回发是由页面上的某些事件引起的,例如我们的DDL上的选定索引或按钮上的点击事件。如果是这种情况,那么您应该能够在相关事件的事件处理程序方法中设置DDL的数据源。
为了使其正常工作,您必须在初始加载而不是回发时在Page_Load方法中加载DDL的数据。这可以通过Page.IsPostBack来检查。
if(!Page.IsPostBack) { /* initial load data binding of the DDL */ }