asp:向导SideBarTemplate - 动态CausesValidation导致Page.IsValid错误

时间:2009-09-03 14:32:31

标签: asp.net validation wizard sidebar

我正在尝试使SideBar功能更像Prev / Next按钮。导航按钮仅在向前移动时检查验证;如果你回去,他们不在乎。据我所知,你只能在SideBar上有一个或另一个选项,而不是两者。所以,这就是我试图做的事情:

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

它可以继续使用,但在以前的步骤中失败并出现此错误:

  

在验证发生之前无法调用Page.IsValid。应该在事件处理程序中查询具有CausesValidation = True并启动回发的控件,或者在调用Page.Validate之后查询。

有什么建议吗?

编辑:我确实看过this post,但它似乎无法解决问题。

1 个答案:

答案 0 :(得分:0)

当我开始使用StartNavigationTemplate,StepNavigationTemplate和FinishNavigationTemplate时,我遇到了类似的问题。我对StepNavigation的解决方案是放入以下代码段:

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

我怀疑是因为我的第一页没有任何要验证的内容。

然而,当我的OnFinishButtonClick被调用时,我仍然遇到问题,到目前为止我找不到任何解决方法。

相关问题