我很努力地理解ASP.NET嚮導控件的行爲。我認爲,如果我定義了一個處理程序Wizard1.NextButtonClick,我可以控制ActiveStepIndex並確定嚮導接下來的步驟 - 當按下Next時,ASP.NET不一定會帶我進入下一步。ASP.NET嚮導控件misbehavinig?
然而,這似乎發生的是我可以控制的嚮導從內部NextButtonClick進入下一隻有當我改變 ActiveStepIndex的價值。但是在某種情況下,我想繼續保持現在的狀態。但是如果我不改變ActiveStepIndex的值,即使我明確地設置了ActiveStepIndex的值,並且已經定義了我自己的NextButtonClick,ASP.NET也會帶我進入下一步。
我並沒有向隨行行李顯示我的實際問題,而是建立了一個簡單的例子。我創建了一個四步向導,閒來無事在HTML但表單標籤,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>
我改變了默認的步進編號和標題從0而不是1運行,因爲ActiveStepIndex從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步。
任何人都可以解釋這種現象?