代码之家  ›  专栏  ›  技术社区  ›  Wodzu

ASP.NET-如何在ContentPlaceHolder中获取Div控件?

  •  3
  • Wodzu  · 技术社区  · 14 年前

    为了测试的目的,我创建了一个非常简单的网站。只有一个母版页和一个内容页。

    我的内容页如下:

    <%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Title="Untitled Page" %>
    
    <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
        <div id="TestDiv1">bla bla</div>
        <div id="TestDiv2">ble ble</div>
    </asp:Content>
    

    现在,基于某些条件,我希望显示/隐藏给定的div。因此,我正尝试通过控件集合访问其中一个div,如下所示:

    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
          ContentPlaceHolder myContent = (ContentPlaceHolder)this.Master.FindControl("ContentPlaceHolder1");
          myContent.FindControl("TestDiv1").Visible = false; //this is not working 
        }
    }
    
        }
    }
    

    但是上面的例子不起作用。两个div控件中没有一个存在 myContent.Controls 收藏。例如,如果我在内容页上放置一个文本框,我可以通过控件访问它。

    2 回复  |  直到 10 年前
        1
  •  11
  •   Giorgio Minardi    14 年前

    你的div是HTMLcontrols,试着添加标签

    <div id="TestDiv1" runat="server">bla bla</div>
    

    这应该能解决你的问题。

        2
  •  4
  •   Moo-Juice    14 年前

    你需要设置 runat="server"