我有一个web用户控件和一个div在里面;一些jQuery切换div的可见性。还有一个启动一些服务器端代码的asp:按钮。让div在回发中显示
我需要在回发后恢复div的可见性。
我正在关注this post's解决方案中发布的更新解决方案。这里是我的代码:
在ascx的顶部,寄存器后:
<script>
function SetHiddenValue()
{
var campo = document.getElementById("<% =hidHiddenField.ClientID %>");
if(campo.Value == "NO")
{
document.getElementById("<% =hidHiddenField.ClientID %>").Value = "SI";
}
else
{
document.getElementById("<% =hidHiddenField.ClientID %>").Value = "NO";
}
}
</script>
DIV的定义:
<div id="divContenidoMetricas" style='<%= DefinirVisibilidad() %>'>
在同一个web用户控件:
<asp:ImageButton runat="server" ImageUrl="~/Themes/Images/buscar.PNG" OnClick="btnFiltrar_Click"
ID="btnFiltrar" OnClientClick="SetHiddenValue()" />
在ascx.cs中:
protected string DefinirVisibilidad()
{
return this.hidHiddenField.Value == "SI" ? "display:block" : "display:none";
}
这只是不工作。 hidHiddenField.Value始终以相同的值到达服务器代码(DefinirVisibilidad())。
非常感谢您的帮助...我的客户端代码知识有点受到ASP.NET的破坏,所以我被卡住了。
解决
我取代“价值”与“价值”和解决的问题。它正在工作!
如果使用ASP.NET AJAX,你可以使用[AlwaysVisibleControl延长器(http://www.asp.net/ajaxlibrary/ AjaxControlToolkitSampleSite/AlwaysVisibleControl/AlwaysVisibleControl.aspx)。 –
你确定你的'SetHiddenValue'函数?如果它的当前值是“NO”,那么它将“SI”放在隐藏字段中,并且在所有其他情况下“否”......我不明白。 – Rodolphe
@Rodolphe,它像campo.Value =!campo.Value ...因为隐藏的值是字符串而不是布尔值,所以我这样做了。 (SI = YES,NO = NO) – daniloquio