【问题标题】:ASP.Net: How to control div-style in backend?ASP.Net:如何在后端控制 div 样式?
【发布时间】:2010-12-14 09:57:59
【问题描述】:

我将从后端的 div 容器控制样式(c#,代码隐藏)。

我不会使用 runat="server"-tag,因为 div-id 在 javaScript 中使用的比较多。

怎么办?

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    如果您按照他的说法使用 .Net 4.0,我会按照 RPM1984 的建议使用 ClientIdMode="Static"。但是,如果这不是一个选项,只需将您的 div 包装在一个没有 runat="server" 的 div 中,例如:

    <div id="wrapperDiv">
        <div id="innerDiv" runat="server">additional stuff</div>
    </div>
    

    这应该可行,并且在 jQuery 中使用外部 div 的 id 访问内部 div 会相当简单:

    $(document).ready(function() {
        $('#wrapperDiv > div').css('display', 'none');
    });
    

    【讨论】:

    • 我认为这有点冗长,因为您不应该那样做,但是在使用旧的 asp.net webforms 应用程序时该怎么办:)...
    【解决方案2】:

    假设你有一个 div,你想在后面的代码和 jQuery 中使用它。

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

    我们都知道,当您查看页面的源代码时,id 会被 asp.net 更改。因此,要使用 jQuery 访问它,请执行以下操作:

    $("#<%=myDiv.ClientID %>")
    

    【讨论】:

    • 应该添加一个注释,如果 JavaScript 是外部的(在 90% 的情况下是这样),这将不起作用。这就是为什么我建议文字。
    • document.getElementById( ' $("#") ' ).setAttribute( 'style', 'display:none' ); - 不会工作
    • 我认为这根本不是一个好的解决方案。你为什么要把你的javascript代码绑定到你的服务器代码上。它们应尽可能分开,最好将脚本定义在您包含的单独文件中。
    • 同意。使用文字或脚本注册将客户端 ID 注册到页面上的 javascript,以便页面上包含的 任何 脚本(内部 外部)可以使用它.顺便说一句,从代码汤中删除# - 这是用于数据绑定。
    • @Kovu,你为什么使用 document.getElementById 然后在里面使用 jQuery。
    【解决方案3】:

    如果您想从后面的代码中访问它,您必须将其设为 runat=server - 就这么简单。

    如果它在 JavaScript 中“被大量使用” - 在文本控件中设置 ClientId,然后通过 JavaScript 以这种方式访问​​它。

    或者,如果您使用 .NET 4,请设置 ClientIdMode="Static"。

    编辑

    以下是如何使用文字控件来保持客户端 ID(以便您可以在 JavaScript 中使用它):

    ASPX:

    <asp:Literal id="DivClientId" runat="server"/>
    

    ASPX.CS:

    DivClentId.Text = string.Format("<script type=\"text/javascript\">var divId = {0};</script>", ServerSideDiv.ClientId);
    

    JavaScript:

    var div = document.getElementById(divId);
    

    【讨论】:

    • 不明白,字面量控件中的ClientID是什么?
    【解决方案4】:

    在 .net 4.0 中,只需使用面板控件(呈现为 div)并将 ClientIDMode 设置为静态。因此,您可以在服务器端设置样式,并且仍然可以轻松地在 JS 代码中访问它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-30
      • 2012-05-20
      • 1970-01-01
      • 2014-03-04
      • 2014-06-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多