.NET ValidationSummary控件不在UpdatePanel内部格式化

时间:2015-03-11 06:44:40

标签: jquery css asp.net ajax validation

我在ASP.NET页面的更新面板中有一些验证控件:

<asp:UpdatePanel ID="UP1" runat="server">
            <Triggers>  
            </Triggers>
            <ContentTemplate>
                <script type="text/javascript">
                    function ValidatorUpdateDisplay(val) {
                        if (typeof (val.display) == "string") {
                            if (val.display == "None") {
                                return;
                            }
                            if (val.display == "Dynamic") {
                                val.style.display = val.isvalid ? "none" : "inline";
                                return;
                            }

                        }
                        val.style.visibility = val.isvalid ? "hidden" : "visible";
                        if (val.isvalid) {
                            document.getElementById(val.controltovalidate).style.border = '1px solid #808080';
                        }
                        else {
                            document.getElementById(val.controltovalidate).style.border = '1px solid red';
                        }
                    }
                </script>
                <asp:Label ID="Label1" runat="server" AssociatedControlID="txtName" CssClass="label" Text="Your Name: (required)" /><asp:TextBox ID="txtName" CssClass="singlelineTxt" CausesValidation="true" ValidationGroup="ContactForm" runat="server" /><br />
                <asp:Label ID="Label2" runat="server" AssociatedControlID="txtCompany" CssClass="label"  Text="Company: (optional)" /><asp:TextBox ID="txtCompany" CssClass="singlelineTxt" runat="server" /><br/>
                <asp:Label ID="Label3" runat="server" AssociatedControlID="txtEmail" CssClass="label"  Text="Your Email: (required)" /><asp:TextBox ID="txtEmail" CssClass="singlelineTxt" CausesValidation="true" ValidationGroup="ContactForm" runat="server" /><br />
                <asp:Label ID="Label4" runat="server" AssociatedControlID="txtSubject" CssClass="label"  Text="Subject: (required)" /><asp:TextBox ID="txtSubject" CssClass="singlelineTxt" CausesValidation="true" ValidationGroup="ContactForm" runat="server"/><br />
                <div id="TextArea"><asp:Label ID="Label5" runat="server" AssociatedControlID="txtMessage" CssClass="label"  Text="Message: (required)" /><asp:TextBox ID="txtMessage" CssClass="multilineTxt" CausesValidation="true" ValidationGroup="ContactForm" TextMode="MultiLine" Wrap="true" runat="server" /></div><br />
                <div id="cbCaptcha" style="display: none;"><!-- for callback recaptcha reload --></div>
                <cc1:Recaptcha ID="Recaptcha1" CssClass="captcha" Theme="Clean" runat="server" />
                <asp:Button ID="btnSubmit" CausesValidation="true" ValidationGroup="ContactForm" CssClass="button" runat="server" text="Submit" OnClick="btnSubmit_Click"/><br /><br />
                <asp:ValidationSummary ID="ValSum1" CssClass="error" ForeColor="" DisplayMode="SingleParagraph" runat="server" />
                <asp:Label ID="lblMessage" runat="server" CssClass="messageSuccess" Visible="false" Text="SUCCESS" />
                <asp:RequiredFieldValidator ID="reqName" ErrorMessage="Name is required." ControlToValidate="txtName" runat="server" ValidationGroup="ContactForm" />
                <asp:RequiredFieldValidator ID="reqEmail" ErrorMessage="Email is required." ControlToValidate="txtEmail" runat="server" ValidationGroup="ContactForm" />
                <asp:RequiredFieldValidator ID="reqSubj" ErrorMessage="Subject is required." ControlToValidate="txtSubject" runat="server" ValidationGroup="ContactForm" />
                <asp:RequiredFieldValidator ID="reqMsg" ErrorMessage="Message is required." ControlToValidate="txtMessage" runat="server" ValidationGroup="ContactForm" />
             </ContentTemplate>
        </asp:UpdatePanel>

我有一些非常简单的CSS(尝试)来设计它:

.error{
    border: 2px solid red;
    color: #f00;
}

然而,无论我试图做什么,我都无法获得此验证摘要以反映任何类型的样式。我一直在研究围绕AJAX以及更新面板如何工作几个小时,现在希望能找到一些暗示问题根源的东西,重新审视和修改并修改其他样式表......没什么可做的。

有没有人知道什么会阻止带有CssClass属性的ASP.NET控件使用指定的CssClass进行渲染?

2 个答案:

答案 0 :(得分:0)

我想其他一些事情就是停止你的CSS风格。因为它在我的最后工作正常。

我发现的还有,在您的更新面板中。 Script Manager遗失了。请添加如下

<asp:ScriptManager ID="sc1" runat="server"></asp:ScriptManager>

拥有look

答案 1 :(得分:0)

在使用asp-validation-summary元素时,我认为生成的HTML不包含在其class语句中指定的任何其他类。通过在CSS样式表中添加一个条目来解决此问题:

.validation-summary-errors ul li {
    color: red !
}