【问题标题】:How Access A Server-Side div In Code Behind (Inside Content Page)如何在代码后面(内容页面内部)中访问服务器端 div
【发布时间】:2012-11-25 16:13:55
【问题描述】:

如何在代码后面(内容页面内)访问服务器端 div?
表示内容页面中有一个 div,如下所示:

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

但下面的代码不起作用:

 MyDiv.Style.Add("display", "none"); 

编辑
我很抱歉,那是我的错误!
上面的代码是正确的并且工作完美,它们没有问题。我的错误是关于我的 css 并且在修复它之后一切都很好。
非常感谢您的关注和回答。

【问题讨论】:

  • MyDiv 渲染的 HTML 是什么?这是您对其进行的唯一修改吗?任何客户端?

标签: c# asp.net visual-studio-2010 runatserver content-pages


【解决方案1】:

要从内容页面访问元素,您可以使用以下代码:

HtmlGenericControl myDiv = (HtmlGenericControl)MyDiv;
myDiv.Style.Add("Display", "none");

【讨论】:

  • 我的 .aspx 页面上有这个:&lt;div id="content" style="text-align: center;" runat="server"&gt;&lt;/div&gt;。当我从代码隐藏访问它时:content.Visible = false; 我收到以下错误:The name 'content' does not exist in the current context
【解决方案2】:

试试那个代码:

MyDiv.Style["display"] = "none";

这里有一些其他变体:How do you change the style of a div programatically

【讨论】:

  • 亲爱的兄弟,感谢您的回答。但我的语法没有问题。 MyDiv 就像 -> ContentPlaceHolder1_MyDiv 在内容页面中,这就是问题所在。除了关于 -> MyDiv....的内容页面没有问题,这就是我感到困惑的原因!
  • 您可以使用 RegisterStartupScript(msdn.microsoft.com/en-us/library/asz8zsxy.aspx) 和 javascript 来更改 ContentPlaceHolder1_MyDiv 的样式。但我认为不是好办法
【解决方案3】:

怎么样:

MyDiv.Visible = false;

请注意,这会导致 div 根本不在页面上呈现,因此您无法在客户端访问它以使其稍后可见。

【讨论】:

    【解决方案4】:

    请注意,如果您为标签设置了一个 id,其中包含 (-) 等不允许的字符,您将无法在代码隐藏中访问它。

    <div id="myDiv" runat=server"> content goes here... </div>
    

    在代码隐藏中:

    myDiv.visible=false;
    

    这会起作用。

    【讨论】:

      【解决方案5】:

      对于那些使用 Amir 回答“当前上下文中不存在名称”(元素 id)”的用户,请尝试打开您的 ASP 页面的 Designer.cs 文件并手动添加您的 html 元素: protected global::System.Web.UI.HtmlControls.HtmlGenericControl elementidhere;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多