[英]CSS disappearing in updatepanel
我有这个问题,我将整个页面都放在了更新面板中,我有几个具有Visible="false"
属性的ASP:Pannel
。
其中一个包含asp:RadioButtonList
Yes,No
在Page_Load()
,通过单选按钮列表,其中之一对用户可见。 因此,当他按“ Yess
,另一个面板对他可见。
问题是我有一个包含asp:DropDownList
的面板,
CssClass="span6 chzn-select">
因此,当该面板可见时, DropDownList
css
消失了!。 我知道更新面板回发有问题,但是我不知道如何解决。 DropDownList
也从名为“ selected”的JQuery文件中获取样式,但是我在任何页面上都没有任何脚本,我只是将css类放到了它的样式中。 提前致谢。
javascript对元素所做的修改(例如添加样式)不会通过回发,甚至部分回发也不会持续。 回传后需要重做所有的javascript初始化。
这是一个JavaScript代码段,该代码段添加了用于完成部分回发的回调。 您可以使用此设置您的用户界面:
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(EndRequest);
function EndRequest(sender, args) {
}
</script>
摘录自这个问题 。
诸如Chosen之类的插件不仅仅是CSS。 他们使用JavaScript查找具有该类的选择元素,并使用可以很好地样式化的不同标记来扩展/替换它们。
并不是说UpdatePanel刷新时您的CSS丢失了,而是选择的JavaScript并未运行以查找和重新增强带有选择子类的常规<select>
元素。
您应该可以使用以下代码重新初始化它们:
$('.chzn-select').chosen();
您可以在页面加载时以及在每次UpdatePanel刷新后通过将其放入ASP.NET按照约定调用的pageLoad()函数中来运行该代码 :
function pageLoad() {
$('.chzn-select').chosen();
}
在同一页面中添加以下js函数(不在documentready内部)
<script>
function pageLoad() {
$('#drpClients').addClass('span6 chzn-select');
}
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.