22

ASP.NET、C#

タイトルが示すように、プログラムで (c# コード ビハインド ファイル) div を別のコンテナー div (aspx ページ) に追加する方法を誰かが知っているかどうか疑問に思っていました。

前もって感謝します

4

5 に答える 5

32

// div の新しいインスタンスを作成し、ID などのすべての値を設定します 短いコード例を確認してください。WebアドでDivを作成するのはうまくいきました

System.Web.UI.HtmlControls.HtmlGenericControl NewDiv = new 
    System.Web.UI.HtmlControls.HtmlGenericControl();
    NewDiv.ID = "divcreated";

また

protected void Page_Load(object sender, EventArgs e)
{
    System.Web.UI.HtmlControls.HtmlGenericControl createDiv =
    new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");      
    createDiv.ID = "createDiv";
    createDiv.Style.Add(HtmlTextWriterStyle.BackgroundColor, "Yellow");
    createDiv.Style.Add(HtmlTextWriterStyle.Color, "Red");
    createDiv.Style.Add(HtmlTextWriterStyle.Height, "100px");
    createDiv.Style.Add(HtmlTextWriterStyle.Width, "400px");
    createDiv.InnerHtml = " I'm a div, from code behind ";
    this.Controls.Add(createDiv);
}
于 2012-05-30T12:47:50.740 に答える
6

ocdecio のような Panel を使用する以外にも、いくつかの可能性があります。

  • div内でasp:Literalコントロールを使用して、事前に生成されたHTMLで埋めることができます
  • runat="server" を div 自体に追加し、HtmlGenericControl としてアクセスして、分離コードから他のコントロールを追加します。
  • <%= ... %> の使用

必要な制御のレベルによって少し異なります。それでも、ほとんどの状況では、非表示で開始するパネルが最適です。

<div>    
<asp:Panel Visible="false" id="MyPanel" runat="server">
</asp:Panel>
</div>

次に、必要に応じて分離コードから可視性を変更します。

ID に基づいてスタイルを割り当てる CSS ファイルに行き詰まっている場合は、他の方法のいずれかを使用する必要があります。その場合、.NET コントロールを使用することは実際にはオプションではありません。しかし、実際には、デザイナーの頭を殴って、代わりにクラス名を使用するように指示する必要があります。

于 2009-07-22T14:36:55.580 に答える
1

これは非常に古い質問かもしれませんが、解決策を追加したいと思います。

まず、ページに既にある "div" (別の "div" を追加したいもの) に runat="server" プロパティを与えて、コード ビハインドからアクセスできるようにします。次のようになります。

<div id="superDIV" class="someCssClass" runat="server"></div>

次に、Page_Load() メソッドに次を追加します。

protected void Page_Load(object sender, EventArgs e)
{
   //We create our new div
   System.Web.UI.HtmlControls.HtmlGenericControl newDiv = 
     new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
   newDiv.ID = "newSuperDIV"; //<---Give and ID to the div, very important!
   newDiv.Style.Value = "background-color:white; height:61%;"; //<---Add some style as example
   newDiv.Attributes.Add("class", "amazingCssClass"); //<---Apply a css class if wanted
   superDiv.Controls.Add(newDiv); //<---Add the new div to our already existing div
}

div をPage_Load関数内に直接生成して、ポストバック後に確実に存在するようにし、(!IsPostBack){}のようなコード ブロック内で生成しないようにします。そうしないと、ページに存在しません。

于 2016-11-24T11:53:11.157 に答える