我有一个RequiredFieldValidator
与Display="Dynamic"
我的ASP.NET Web窗体.我已经使用该CssClass
属性为其分配了一个类.我希望使用错误消息显示display: block
,所以我把它放在我的样式表中的css类.
不幸的是,验证器放置一个显示:内联在网页上的元素上,有效地覆盖了我的样式表值.
我可以摆脱它吗?
编辑:
我才意识到为什么这不起作用.在Display="Dynamic"
验证器上设置时,它具有style="display: none"
在渲染时在span标记上设置的效果.然后.net javascript库在none
和之间切换元素的内联样式inline
.这就是动态验证器的工作原理.因此,要将其显示为块元素,我将需要修改客户端事件验证的工作方式.有可能吗?
Dav*_*vid 34
使用CSS属性选择器和!important我做到了.我不得不使用"包含"选择器让它在FF中工作,但现在我已经在IE10,FF和Chrome中测试过它,到目前为止它正在运行.这很简单.这是我的aspx页面中的示例验证器:
<asp:RequiredFieldValidator runat="server" ID="rfvRequired" ErrorMessage="This is required.<br/>This is line 2" ControlToValidate="tbRequired" ValidationGroup="CommonAttributesValidationGroup" SetFocusOnError="True" CssClass="valerror" Display="Dynamic"></asp:RequiredFieldValidator>
Run Code Online (Sandbox Code Playgroud)
接下来我有一个valerror风格.
span.valerror[style*="inline"]
{
display:block !important;
background-color: Yellow;
border: 1px solid #cccccc;
font-size:.9em;
}
Run Code Online (Sandbox Code Playgroud)
这就对了.工作原理:当跨度将样式从"display:none"更改为"display:inline"时,跨度上的属性选择器将启动并强制它成为块.您只需要创建一个类似上面的CSS条目,并确保您使每个验证器成为该类.
Hen*_*y C 29
我曾经使用的一个非常hacky的解决方案(我并不自豪,但它有效)是将RequiredFieldValidator包装在一个<div>中,这是一个块元素; 因此,即使你的RequiredFieldValidator是内联的,它也在一个块div中,因此在大多数情况下它会有效地显示为display:block.
告诉你它是hacky!
也许这可以帮助您:
http://caliberwebgroup.blogspot.com/2009/02/overriding-javascript-in-webresourceaxd.html
归档时间: |
|
查看次数: |
27417 次 |
最近记录: |