ASP.NET、C#
タイトルが示すように、プログラムで(c#コードビハインドファイル)divを別のコンテナーdiv(aspxページ内)に追加する方法を誰かが知っているのではないかと思いました。
前もって感謝します
// 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);
}
Panel myChildPanel = new Panel();
myContainerPanel.Controls.Add(myChildPanel);
提案されたocdecioのようなパネルを使用する以外に、他のいくつかの可能性があります。
必要な制御レベルに少し依存します。それでも、ほとんどの状況では、見えない状態から開始するパネルが最適です。
<div>
<asp:Panel Visible="false" id="MyPanel" runat="server">
</asp:Panel>
</div>
次に、必要に応じて分離コードの可視性を変更します。
他の方法のいずれかを使用する場合の1つのケースは、IDに基づいてスタイルを割り当てるCSSファイルで立ち往生している場合です。その場合、.NETコントロールを使用することは実際にはオプションではありません。しかし、実際には、デザイナーを頭で叩いて、代わりにクラス名を使用するように指示する必要があります。
Divにマップするasp:Panelを使用します。
これは非常に古い質問かもしれませんが、支援するためのソリューションを追加したいと思います。
まず、ページに既にある「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
}
Page_Load関数内に直接divを生成し、ポストバック後に存在することを保証します。(!IsPostBack){}のようなコードブロック内で生成しないでください。あなたのページで。