web-dev-qa-db-ja.com

ロードイベントでC#からdivタグ内にHTMLを動的に追加できますか?

あなたはマスターページを使用していますが、ページ内のdivを見つけてそこにhtmlを投げることはできますか?ありがとう。

45
Sara Chipps

Runat = "server"でdivをページに追加できます。

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

次に、コードビハインドからInnerHtmlプロパティを設定します。

myDiv.InnerHtml = "your html here";

クライアント側でDIVのコンテンツを変更する場合は、次のようなJavaScriptコードを使用できます。

<script type="text/javascript">
    Sys.Application.add_load(MyLoad);
    function MyLoad(sender) {
        $get('<%= div.ClientID %>').innerHTML += " - text added on client";
    }
</script>
81
M4N

つかいます asp:Panelそのため。 divに変換されます。

15
Otávio Décio

使用することを忘れないでください

myDiv.InnerHtml = "something";

myDIVのすべてのHTML要素を置き換えます。それを避けるためにテキストを追加する必要があります。

myDiv.InnerHtml = "something" + myDiv.InnerText;

myDiv内の任意のhtmlコントロール。ただしASP htmlコントロール(まだレンダリングされていないため)。

5
Vivek Raj

この方法でマスターページ内のコントロールを参照できます。

void Page_Load()
{
    ContentPlaceHolder cph;
    Literal lit;

    cph = (ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1");

    if (cph != null) {
        lit = (Literal) cph.FindControl("Literal1");
        if (lit != null) {
            lit.Text = "Some <b>HTML</b>";
        }
    }

}

この例では、ContentPlaceholderにリテラルコントロールを配置する必要があります。

3
splattne

そのマスターページを使用しているページのコンテンツにHTMLを挿入するコードをマスターページコードの背後に配置しますか?

FindControlを使用してコントロールを検索することはありません。これは、コントロールの名前が変更された場合に簡単に破損する可能性がある壊れやすいソリューションだからです。

最善の策は、子ページが処理できるイベントをマスターページで宣言することです。イベントはHTMLをEventArgとして渡すことができます。

1
Jim Petkus