服务器端验证触发的错误消息未显示在正确的选项卡下

时间:2018-02-21 13:56:39

标签: asp.net vb.net twitter-bootstrap

我有标签,每个标签我都有服务器端验证。如果错误出现在"标签2"显示错误,但"标签1"因此显示用户没有看到错误消息。请在此处查看截屏视频https://www.screencast.com/t/NRU5L44F,并在此处查看问题https://www.corobori.com/TestPage2018.aspx

        <ul class="nav nav-tabs">
    <li class="active"><a data-toggle="tab" href="#home"><h4 class="azul">Tab 1 </h4></a></li>
    <li><a data-toggle="tab" href="#menu1"><h4 class="azul">Tab 2</h4></a></li>
    <li><a data-toggle="tab" href="#menu2"><h4 class="azul">Tab 3</h4></a></li>

    </ul>

    <div class="tab-content">
    <div id="home" class="tab-pane fade in active">
        <div class="contact-form">
        Tab 1
        </div>
    </div>
    <div id="menu1" class="tab-pane fade">
        <p class="padding-20">
        Tab 2
        </p>
        <div class="contact-form">
        <asp:TextBox ID="txtNoRegCorreo" cssclass="contact-input" runat="server" placeholder="Some data" ></asp:TextBox>
        <asp:CustomValidator id="valCorreo" ForeColor="Red"   runat="server" ErrorMessage="This is an error message  " Display="Dynamic"
        ValidationGroup="grpNoREG" ControlToValidate="txtNoRegCorreo" ValidateEmptyText="True" ></asp:CustomValidator>
        </div>
        <div class="col-md-12">
        <asp:Button ValidationGroup="grpNoREG" ID="btnNoREG" runat="server" cssclass="contact-button" Text="Click to test" />
        </div>
    </div>
    <div id="menu2" class="tab-pane fade">
        <p class="padding-20">
        Tab 3
        </p> 
    </div>

    </div>

验证只返回false

    Private Sub valCorreo_ServerValidate(source As Object, args As ServerValidateEventArgs) Handles valCorreo.ServerValidate
    args.IsValid = False
End Sub

1 个答案:

答案 0 :(得分:0)

asp.net forum上的答案给了我一个线索,这是一个有效的解决方案

        <ul class="nav nav-tabs">
    <li class="<%=homeTabClass1()%>" ><a data-toggle="tab" href="#home"><h4 class="azul">Tab 1 </h4></a></li>
    <li class="<%=homeTabClass2()%>"><a data-toggle="tab" href="#menu1"><h4 class="azul">Tab 2</h4></a></li>
    <li class="<%=homeTabClass3()%>"><a data-toggle="tab" href="#menu2"><h4 class="azul">Tab 3</h4></a></li>

    </ul>

    <div class="tab-content">
    <div id="home" class="tab-pane fade in <%=homeTabClass11()%>">
        <div class="contact-form">
        Tab 1
        </div>
    </div>
    <div id="menu1" class="tab-pane fade <%=homeTabClass21()%>">
        <p class="padding-20">
        Tab 2
        </p>
        <div class="contact-form">
        <asp:TextBox ID="txtNoRegCorreo" cssclass="contact-input" runat="server" placeholder="Some data" ></asp:TextBox>
        <asp:CustomValidator id="valCorreo" ForeColor="Red"   runat="server" ErrorMessage="This is an error message  " Display="Dynamic"
        ValidationGroup="grpNoREG" ControlToValidate="txtNoRegCorreo" ValidateEmptyText="True" ></asp:CustomValidator>
        </div>
        <div class="col-md-12">
        <asp:Button ValidationGroup="grpNoREG" ID="btnNoREG" runat="server" cssclass="contact-button" Text="Click to test" />
        </div>
    </div>
    <div id="menu2" class="tab-pane fade <%=homeTabClass31()%>">
        <p class="padding-20">
        Tab 3
        </p> 
    </div>

    </div>

背后的代码是:

Public Class TestPage2018
Inherits System.Web.UI.Page

Dim sClass1 As String
Dim sClass2 As String
Dim sClass3 As String
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    sClass1 = "active"
    sClass2 = ""
    sClass3 = ""
End Sub


Private Sub btnNoREG_Click(sender As Object, e As EventArgs) Handles btnNoREG.Click
    If Me.IsValid = True Then

    End If
End Sub

Private Sub valCorreo_ServerValidate(source As Object, args As ServerValidateEventArgs) Handles valCorreo.ServerValidate
    sClass1 = ""
    sClass2 = "active"
    sClass3 = ""
    args.IsValid = False
End Sub
Public Function homeTabClass1()
    Return sClass1
End Function
Public Function homeTabClass2()
    Return sClass2
End Function
Public Function homeTabClass3()
    Return sClass3
End Function
Public Function homeTabClass11()
    Return sClass1 & " in "
End Function
Public Function homeTabClass21()
    Return sClass2 & " in "
End Function
Public Function homeTabClass31()
    Return sClass3 & " in "
End Function

结束班