簡體   English   中英

保持div在回發中顯示

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM