[英]Keep div displayed on postback
我有一個Web用戶控件和一個div; 一些jQuery切換div的可見性。 還有一個asp:按鈕,它啟動一些服務器端代碼。
回發后,我需要恢復div的可見性。
我正在關注此帖子的解決方案中發布的更新的解決方案。 這是我的代碼:
在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破壞,所以我被困住了。
解決了
我用“值”替換了“值”,這解決了問題。 工作正常!
試試這個,請:
function SetHiddenValue()
{
var campo = document.getElementById("<% =hidHiddenField.ClientID %>");
var display = document.getElementById("divContenidoMetricas").style.display;
if(display == "block")
{
campo.value = "SI";
}
else
{
campo.value = "NO";
}
}
編輯:用“值”替換“值”。
如何使用jQuery將其設置為文檔就緒?
$(document).ready(function() {
var showDiv = <%= DefinirVisibilidad() %>;
if (showDiv != true) {
$('#divContenidoMetricas').hide();
}
});
而不是直接使用<%%>塊設置樣式。
值必須為小寫,因此在替換后就可以使用:
if(campo.value == "NO")
{
document.getElementById("<% =hidHiddenField.ClientID %>").value = "SI";
}
else
{
document.getElementById("<% =hidHiddenField.ClientID %>").value = "NO";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.