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 行目を使用すると、2 つの問題があります。動的なステップに到達すると、次のステップに進むことができません ([次へ] ボタンを使用)。これは、this.IsValid が false であるためと思われます (ただし、ページに検証コントロールがありません)。その現在のページで立ち往生しているようです。

Line 2 を使用して実行すると、ステップが再び正常に追加されます。最初の動的ステップで [次へ] をクリックすると、エラーが発生します。ActiveViewIndex は '7' に設定されています。現在のビュー コントロール '7' よりも小さくする必要があります。動的に追加されたビューの場合、それらが Page_PreInit イベントの前または中に追加されるようにします。

2 番目のエラーの問題は、描画するステップ数を知るためにビューステートにアクセスする必要があるため、Page_PreInit に動的ステップを追加できないことです。

4

1 に答える 1

0

問題が見つかりました。Page_PreInit イベントにステップを追加する必要があるためです。これは、Viewstate を使用できないことを意味しますが、代わりにセッションを使用しています。

于 2010-05-07T15:53:01.510 に答える