3

テスト用に非常に単純な Web サイトを作成しました。1 つのマスター ページと 1 つのコンテンツ ページのみ。

私のコンテンツページは次のようになります。

<%@ 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 の 1 つに到達しようとしています。

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 
    }
}

    }
}

しかし、上記の例は機能しません。2 つの div コントロールはいずれもmyContent.Controlsコレクションに存在しません。たとえば、コンテンツ ページに TextBox を配置すると、コントロールを介してアクセスできます。

では、div コントロールにアクセスできるようにするにはどうすればよいでしょうか?

4

2 に答える 2

11

あなたのdivはHTMLコントロールです。タグrunat="server"を追加してみてください

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

それはあなたの問題を解決するはずです。

于 2010-11-12T10:58:34.460 に答える
4

divに設定する必要がありますrunat="server"

于 2010-11-12T10:55:02.770 に答える