2009-09-03 4 views
0

J'essaie de rendre la fonction SideBar plus comme les boutons Précédent/Suivant. Les boutons de navigation vérifient uniquement la validation lors de l'avancement; ils s'en foutent si tu y retournes. Pour autant que je sache, vous ne pouvez avoir qu'une ou l'autre option sur le SideBar, pas les deux. Alors, voici ce que je cherchais à faire:asp: Assistant SideBarTemplate - causesValidation dynamique provoque l'erreur Page.IsValid

<SideBarTemplate> 
    <asp:DataList ID="SideBarList" runat="server"> 
    <ItemTemplate> 
     <asp:LinkButton ID="SideBarButton" runat="server" CausesValidation="<%# Container.ItemIndex >= myWizard.ActiveStepIndex %>" /> 
    </ItemTemplate> 
    </asp:DataList> 
</SideBarTemplate> 

Il fonctionne à l'avenir, mais échoue sur les étapes précédentes avec cette erreur:

Page.IsValid cannot be called before validation has taken place. It should be queried in the event handler for a control that has CausesValidation=True and initiated the postback, or after a call to Page.Validate.

Toutes les suggestions?

edit: J'ai regardé this post, mais cela ne semble pas résoudre le problème.

Répondre

0

J'ai rencontré un problème similaire lorsque j'ai commencé à utiliser StartNavigationTemplate, StepNavigationTemplate et FinishNavigationTemplate. Ma solution pour la StepNavigation était de mettre l'extrait suivant:

protected void wiz_NextButtonClick(object sender, WizardNavigationEventArgs e) 
    { 
     if (e.CurrentStepIndex > 0 && Page.IsValid) 
     {... 

Je pense qu'il est parce qu'il n'y a rien à valider ma première page.

Cependant, j'ai toujours le problème lorsque mon OnFinishButtonClick est appelé, et je ne trouve aucun moyen de contourner le problème jusqu'à présent.

Questions connexes