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

时间:2010-11-12 10:53:31

标签: c# asp.net html contentplaceholder

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

我的内容页面如下:

<%@ 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。所以我试图通过Controls集合到达其中一个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 
    }
}

    }
}

但上面的例子不起作用。 myContent.Controls集合中不存在两个div控件。如果我在我的内容页面上放置一个TextBox,我可以通过Controls来实现它。

那么我该怎么办才能访问div控件?

2 个答案:

答案 0 :(得分:11)

你的div是HTMLcontrols,尝试添加标签 runat =“server”

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

那应该可以解决你的问题。

答案 1 :(得分:4)

您需要在div上设置runat="server"