2008-11-14 6 views

Répondre

0

Si vous ajoutez des contrôles à une page vierge, vous effectuez Page.Controls.Add() .... non?

+0

désolé j'ai omis que je veux le contenu rempli, pas de contrôles réels générés – Anders

+0

Rempli avec quoi que ce soit spécifique? Texte brut ou texte? –

+0

texte seulement, j'ai le format HTML en dehors du contentplace – Anders

4

Si votre page hérite d'un MasterPage, alors vous devriez avoir un aspic: contrôle de contenu sur votre page avec une pièce d'identité, comme ceci:

<asp:Content runat="server" ID="myContent" ContentPlaceHolderID="masterContent"> 
</asp:Content> 

Vous devriez être en mesure de faire référence dans votre behind et ajoutez tout ce que tu veux.

public void Page_Load(object sender, EventArgs e) 
{ 
    HtmlContainerControl div = new HtmlGenericControl("DIV"); 
    div.innerHTML = "....whatever..."; 
    myContent.Controls.Clear(); 
    myContent.Controls.Add(div); 
} 
+0

ne sais pas si cela fonctionne. – Shawn

+0

Je sais que c'est vieux, mais techniquement, il devrait être nouveau HtmlGenericControl ("div"), HtmlContainerControl est abstrait et ne peut pas être créé (bien que vous puissiez convertir la variable "div" en ce type). – McGuireV10

+0

@ McGuireV10 - merci ... et je suis tellement content d'avoir laissé des webforms derrière moi. – tvanfosson

0

J'utilise une méthode d'extension personnalisée qui recherche un contrôle (un espace réservé par exemple) récursive pour trouver le contrôle que vous êtes à la recherche par Id et le retourner. Vous pouvez ensuite remplir le contrôle renvoyé si nécessaire. Appelez ceci dans une boucle foreach en itérant sur votre liste de contrôles à remplir.

public static class ControlExtensions 
{ 
    /// <summary> 
    /// recursive control search (extension method) 
    /// </summary> 
    public static Control FindControl(this Control control, string Id, ref Control found) 
    { 
     if (control.ID == Id) 
     { 
      found = control; 
     } 
     else 
     { 
      if (control.FindControl(Id) != null) 
      { 
       found = control.FindControl(Id); 
       return found; 
      } 
      else 
      { 
       foreach (Control c in control.Controls) 
       { 
        if (found == null) 
         c.FindControl(Id, ref found); 
        else 
         break; 
       } 

      } 
     } 
     return found; 
    } 
} 
+0

excuses pour le code C# - n'a pas vu le tag vb – flesh

Questions connexes