動的ステップを使用する必要があるウィザード コントロールがあります。動的ステップをロードする次のコードがあります (これはすべて正常に動作します)。私は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 行目を使用すると、2 つの問題があります。動的なステップに到達すると、次のステップに進むことができません ([次へ] ボタンを使用)。これは、this.IsValid が false であるためと思われます (ただし、ページに検証コントロールがありません)。その現在のページで立ち往生しているようです。
Line 2 を使用して実行すると、ステップが再び正常に追加されます。最初の動的ステップで [次へ] をクリックすると、エラーが発生します。ActiveViewIndex は '7' に設定されています。現在のビュー コントロール '7' よりも小さくする必要があります。動的に追加されたビューの場合、それらが Page_PreInit イベントの前または中に追加されるようにします。
2 番目のエラーの問題は、描画するステップ数を知るためにビューステートにアクセスする必要があるため、Page_PreInit に動的ステップを追加できないことです。