マスター ページを使用していますが、ページ内で div を見つけてそこに html を挿入することはできますか? ありがとう。
5 に答える
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>
そのために使用asp:Panel
します。それはdivに変換されます。
使用を覚えておいてください
myDiv.InnerHtml = "something";
myDIV のすべての HTML 要素を置き換えます。それを避けるためにテキストを追加する必要があります。
myDiv.InnerHtml = "something" + myDiv.InnerText;
myDiv 内の任意の html コントロール (まだレンダリングされていないため) ASP HTML コントロールではありません。
次の方法で、マスター ページ内のコントロールを参照できます。
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 に Literal コントロールを配置する必要があります。
そのマスター ページを使用しているページのコンテンツに HTML を挿入するマスター ページ コード ビハインドにコードを挿入しますか?
これは脆弱なソリューションであり、コントロールの名前が変更された場合に簡単に壊れる可能性があるため、FindControl を介してコントロールを検索しません。
最善の策は、どの子ページでも処理できるマスター ページでイベントを宣言することです。イベントは、HTML を EventArg として渡すことができます。