带动态步骤的Asp.net Wizard Control卡住了

时间:2010-05-07 14:16:46

标签: asp.net dynamic wizard

我有一个必须使用动态步骤的向导控件。我有以下代码加载动态步骤(这一切都正常)。我有7个静态步骤。

protected override LoadViewState(object savedState)
{
    base.LoadViewState(savedState);

    int offset = 4;
    foreach(string stepName in this.ViewState["Steps"])
    {
        WizardStep step = new WizardStep();
        step.Title = stepName;
        this.Wizard1.WizardSteps.AddAt(step, offset); // LINE 1
        this.Wizard1.WizardSteps.Add(step); // LINE 2
        offset++;
    }
}

我有两个问题,当我执行代码并使用第1行时。当我进入动态步骤时,它将不允许您进入下一个(使用“下一步”按钮)。这似乎是因为this.IsValid是假的(但我在页面上没有验证控件)。它似乎陷入当前页面。

当我使用第2行运行时,它会再次添加步骤。当我在第一个动态步骤并单击下一步时,我收到错误。 ActiveViewIndex被设置为'7'。它必须小于当前视图控件'7'。对于动态添加的视图,请将它们添加到Page_PreInit事件之前或之中。

第二个错误的问题是我无法在Page_PreInit中添加动态步骤,因为我需要访问viewstate才能知道要绘制多少步骤。

1 个答案:

答案 0 :(得分:0)

我发现了这个问题。因为必须在Page_PreInit事件中添加步骤。这意味着我不能使用Viewstate,但我现在正在使用Session。