来自Dynamic Controls的Asp.net Web基于动态控件

时间:2010-09-07 16:21:57

标签: asp.net dynamic controls webforms

我正在使用向导控件,步骤1有一个列表框,其中包含一个包含条目1-10的列表框。步骤2然后动态构建并在每个条目中显示1个列表框。步骤2中的每个列表框各包含5个条目。我还有一个步骤需要从第2步中读取列表框并获取它们的值,以便在步骤2中为每个选择的条目显示3个单选按钮。

目前我有3种方法可以运行populateStep1()populateStep2()populateStep3()。我在Page_Load中运行每个。

void page_load()
{
    if(!Page.IsPostBack)
    {
      populateStep1();
    }

    populateStep2();
    populateStep3();
}

我的问题是第3步第一次无法正常工作。它第二次工作,但不是第一次。我相信这是因为步骤2中的控件尚未应用viewstate,因此没有选择任何内容。

任何人都想草绘/指出一个模式来处理依赖于其他动态控件的动态控件吗?

1 个答案:

答案 0 :(得分:0)

如果您正在使用动态添加的控件,那么您真的需要在page life cycle的初始化期间添加它们,因为这将确保View State正确地保持水合。

由于View Page在Page_Load之前是水合的,所以你添加的东西太晚了。

将您的逻辑移到Page_Init方法中,您应该是金色的。

void Page_Init()
{
    if(!Page.IsPostBack)
    {
      populateStep1();
    }

    populateStep2();
    populateStep3();
}