ASP.NET, C #
Comme le titre l'indique, je me demandais si quelqu'un savait comment programmer (code c # derrière le fichier) ajouter un div à un autre div de conteneur (dans la page aspx).
Merci d'avance
// crée une nouvelle instance de div et définit toutes les valeurs comme l'ID Consultez l'exemple de code court. Cela a fonctionné pour moi de créer des Divs dans un site Web
System.Web.UI.HtmlControls.HtmlGenericControl NewDiv = new
System.Web.UI.HtmlControls.HtmlGenericControl();
NewDiv.ID = "divcreated";
ou
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);
Mis à part l'utilisation d'un panneau comme ocdecio suggéré, il existe plusieurs autres possibilités.
Cela dépend un peu du niveau de contrôle dont vous avez besoin. Pourtant, dans la plupart des circonstances, un panel qui commence invisible serait le mieux:
<div>
<asp:Panel Visible="false" id="MyPanel" runat="server">
</asp:Panel>
</div>
Modifiez ensuite la visibilité de votre code lorsque vous en avez besoin.
Un cas où vous voudrez peut-être utiliser l'une des autres méthodes est lorsque vous êtes coincé avec un fichier CSS qui attribue des styles en fonction de l'ID. Dans ce cas, l'utilisation des contrôles .NET n'est pas vraiment une option. Mais vraiment, vous devriez frapper votre concepteur par dessus la tête et lui dire d'utiliser des noms de classe à la place.
Utilisez asp: Panel, qui correspond à une div.
Cela peut être une très vieille question, mais je voudrais ajouter ma solution pour aider:
Tout d'abord, pour le "div" que vous avez déjà dans votre page (celui auquel vous voulez ajouter un autre "div"), donnez la propriété runat = "server" afin que vous puissiez y accéder à partir du code derrière, cela ressemblerait à ceci:
<div id="superDIV" class="someCssClass" runat="server"></div>
Ensuite, dans votre méthode▶Load (), ajoutez ce qui suit:
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
}
Générez votre div directement à l'intérieur de la fonction ▶Load afin de garantir qu'il existe après toute publication, évitez de le générer dans des blocs de code comme (!! IsPostBack) {} sinon il n'existera pas dans votre page.