我有一个必须使用动态步骤的向导控件。我有以下代码加载动态步骤(这一切都很好)。我有 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 中添加动态步骤,因为我需要访问视图状态才能知道要绘制多少个步骤。