0

我有一个必须使用动态步骤的向导控件。我有以下代码加载动态步骤(这一切都很好)。我有 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 为 false(但我在页面上没有验证控件)。它似乎卡在当前页面上。

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

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

4

1 回答 1

0

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

于 2010-05-07T15:53:01.510 回答