2012-04-17 63 views
4

我在我的項目中使用asp.net嚮導,這對我來說是新手。我在嚮導的其中一個步驟中進行驗證。如果驗證失敗,我不應該讓用戶進入下一步。我正在使用一個在嚮導中的步驟之間導航的asp.net按鈕。如果有人能幫助我,我將不勝感激。如果在asp.net嚮導中驗證失敗,則取消步驟

+0

告訴我們你的代碼到底是什麼,你在哪裏被觸擊,以便我們可以看看你的問題,並繼續下去。 – coder 2012-04-17 15:31:10

+0

這是我的導航按鈕事件代碼。 保護無效wizNav_Click(對象發件人,EventArgs的) { \t如果((wizClaimInfo.ActiveStep).ID == 「stepSelectAddresses」) { 變種主= RetrieveAddressFields(下IsValid的,主); \t return; \t} } – 2012-04-17 15:34:29

回答

8

你可以嘗試取消嚮導的SideBarButtonClick和NextButtonClick事件:

protected void Wizard1_SideBarButtonClick(object sender, WizardNavigationEventArgs e) 
    { 
    e.Cancel = !ValidateWizardStep(e.NextStepIndex); 
    } 

    protected void Wizard1_NextButtonClick(object sender, WizardNavigationEventArgs e) 
    { 
    e.Cancel = !ValidateWizardStep(e.NextStepIndex); 
    } 
+0

感謝您的回覆Mr.Ulises。我使用asp.net按鈕而不是嚮導導航按鈕。那麼,我怎樣才能達到與asp.net按鈕相同。 – 2012-04-17 15:39:36

+0

你的按鈕在哪裏?你把它放在StepNavigationTemplate中嗎?如果是這樣,您應該能夠添加CommandName =「MoveNext」或CommandName =「MovePrevious」以激發上述事件。 – Ulises 2012-04-17 15:48:08

+0

我正在使用該事件的按鈕是在導航模板中,也用於SideBar模板中的鏈接按鈕。 – 2012-04-17 15:52:35

4

我調整了代碼由烏利塞斯發出一點點,使工作。

  1. 我已經加入onNextButtonClick屬性向導

    <asp:Wizard ID="wizClaimInfo" runat="server" CssClass="wizard" DisplayCancelButton="True" ActiveStepIndex="0" OnNextButtonClick="wizClaimInfo_NextButtonClick"> 
    
  2. 在代碼隱藏加入以下事件

    protected void wizClaimInfo_NextButtonClick(object sender, WizardNavigationEventArgs e) { 
    
         if (!IsValid) 
         { 
          e.Cancel = true; 
         } 
    
        return; 
    } 
    

也跟着下面鏈接給出指令。

http://forums.asp.net/t/1014412.aspx/2/10

我希望這將幫助別人的未來,因爲我花了近2天嘗試弄明白。並且特別感謝Mr.Ulises。