在条件上显示asp.net中的div

时间:2014-09-25 06:40:17

标签: asp.net cookies

是否可以在asp.net中显示/不显示div,具体取决于是否设置了cookie? 注意:div是在asp.net中使用javascript调用的html表单。

这里是asp.net中的代码

 <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" runat="Server">   
 <script type="text/javascript">
        $(document).ready(function () { $('#'<%= webform.ClientID %>).load('popup.html'); 
</script><div id="webform" runat="Server">
</div>
</asp:Content>

在代码背后:

protected void Page_Load(object sender, EventArgs e)
{ webform.Visible= true;}

请注意,当代码为:(没有任何代码隐藏)时,webform是可见的      

 <script type="text/javascript">

     $(document).ready(function () { $('#webform').load('popup.html'); })
 </script>
 <div id="webform" >
 </div>
 </asp:Content>

目标是使其可见或不依赖于是否已设置cookie。 我已经测试过表单(用HTML格式)设置cookie(用javascript通过webform)

1 个答案:

答案 0 :(得分:1)

这是你尝试的逻辑

  1. 通过添加runat="server"属性

  2. 使您的DIV成为服务器控件
  3. 还有DIV标记的ID属性

  4. 根据Cookie值设置此DIV在您的代码背后的可见性

  5. E.g。

    标记代码

    <div id="MyDiv" runat="server"></div>
    

    背后的代码

    MyDiv.Visible = true; // set this based on the cookie value
    

    更新1

    这就是您在脚本中使用DIV的方式

    <script type="text/javascript">
            $(document).ready(function () { $('#'<%= MyDiv.ClientID %>).load('popup.html'); })
    </script>
    

    更新2

    我在UPDATE 1中犯了一个错误。您应该像'#<%= MyDiv.ClientID %>'一样编写JQuery选择器,而不是'#'<%= MyDiv.ClientID %>(注意&#39;标记)。

    而且,你的脚本也犯了一个错误。您在脚本末尾错过了})

    无论如何,这是工作解决方案。 (我尝试过,所以不要告诉它不工作: - ))

    <script type="text/javascript">
                $(document).ready(function () { $('#<%= webform.ClientID %>').load('popup.html');} )
    </script>
    <div id="webform" runat="Server"></div>
    

    希望你能理解这一点。