我正在尝试使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,但它似乎无法解决问题。
答案 0 :(得分:0)
当我开始使用StartNavigationTemplate,StepNavigationTemplate和FinishNavigationTemplate时,我遇到了类似的问题。我对StepNavigation的解决方案是放入以下代码段:
protected void wiz_NextButtonClick(object sender, WizardNavigationEventArgs e)
{
if (e.CurrentStepIndex > 0 && Page.IsValid)
{...
我怀疑是因为我的第一页没有任何要验证的内容。
然而,当我的OnFinishButtonClick被调用时,我仍然遇到问题,到目前为止我找不到任何解决方法。