ASP.NET ウィザード コントロールの動作を理解するのに苦労しています。ハンドラー Wizard1.NextButtonClick を定義すれば、ActiveStepIndex を制御して、ウィザードが次に進むステップを決定できると考えました。[次へ] を押しても、ASP.NET は必ずしも次のステップに進むとは限りません。
ただし、 ActiveStepIndex の値を変更した場合にのみ、NextButtonClick 内からウィザードが次に進む場所を制御できるように見えます。しかし、ある状況では、私は現在のステップにとどまりたい. ただし、ActiveStepIndex の値を変更しなければ、ActiveStepIndex の値を明示的に設定し、独自の NextButtonClick を定義しても、ASP.NET は次のステップに進みます。
係員の手荷物に関する実際の問題を示すのではなく、簡単な図を作成しました。4 ステップのウィザードを作成しました。HTML には form タグ、body タグなどしかありません。
<asp:Wizard ID="Wizard1" runat="server">
<WizardSteps>
<asp:WizardStep ID="WizardStep0" runat="server" Title="Step 0">
</asp:WizardStep>
<asp:WizardStep ID="WizardStep1" runat="server" Title="Step 1">
</asp:WizardStep>
<asp:WizardStep ID="WizardStep2" runat="server" Title="Step 2">
</asp:WizardStep>
<asp:WizardStep ID="WizardStep3" runat="server" Title="Step 3">
</asp:WizardStep>
</WizardSteps>
</asp:Wizard>
ActiveStepIndex は 0 から実行されるため、デフォルトのステップ ID とタイトルを 1 ではなく 0 から実行するように変更しました。
次に、このハンドラーを分離コードに追加します
Protected Sub Wizard1_NextButtonClick(sender As Object, e As System.Web.UI.WebControls.WizardNavigationEventArgs) Handles Wizard1.NextButtonClick
Wizard1.ActiveStepIndex = 1
End Sub
私の理解では、[次へ] を押してステップ 2 に進むことはできないはずです。でもやるよ。ステップ2に到達しないために、私はこれをしなければなりません
Protected Sub Wizard1_NextButtonClick(sender As Object, e As System.Web.UI.WebControls.WizardNavigationEventArgs) Handles Wizard1.NextButtonClick
Wizard1.ActiveStepIndex = 3
Wizard1.ActiveStepIndex = 1
End Sub
つまり、ActiveStepIndex が 1 の場合 (これはステップ 2 に到達できるが、到達すべきではないと考えている場合)、1 に戻す前に意図的にその値を変更します。
さらに興味深いことに、Wizard1.ActiveStepIndex をウォッチ ウィンドウに配置すると、ステップ 2 に移動しても、2 にはなりません。
誰でもこの動作を説明できますか?