2017-07-04 1 views
0

Existe-t-il un moyen de référencer la valeur du contrôle en cours s'il s'agit d'un texte d'entrée?Référence Texte d'entrée HTML du contrôle

foreach (Control c in line1.Controls) 
{ 
    if (c.GetType().ToString() == "System.Web.UI.HtmlControls.HtmlInputText") 
    { 
     c.ID.Value() = "test"; 
    } 
} 

J'ai une page HTML et je veux faire une boucle dans les contrôles, et définir leur valeur dans la boucle. Est-ce que je vais à ce sujet tout faux? Je ne peux pas trouver un moyen de référencer le HTmlInputText à partir d'un contrôle?

Répondre

2

Vous pouvez vérifier le contrôle avec is

foreach (Control c in line1.Controls) 
{ 
    //check if the control is a textbox 
    if (c is TextBox) 
    { 
     //cast it back to a textbox to access its properies 
     TextBox tb = c as TextBox; 
     tb.Text = "TextBox found"; 

     //or set the id 
     c.ID = "test"; 
    } 
} 

Ou un contrôle générique

foreach (Control c in line1.Controls) 
{ 
    //check if the control is a HtmlInputControl 
    if (c is HtmlInputControl) 
    { 
     //cast it back to a HtmlInputControl to access its properies 
     HtmlInputControl hic = c as HtmlInputControl; 
     hic.Value = "HTML TextBox found"; 

     //or set the id 
     c.ID = "test"; 
    } 
} 
+0

Le seul problème est, HtmlInputText n'est pas une zone de texte, et je reçois une erreur lorsque je l'ai jeté comme "Zone de texte". – Caveman42

+0

Mis à jour ma réponse. – VDWWD

+0

Cela fonctionne! J'ai dû ajouter la référence "using System.Web.UI.HtmlControls;" vers le haut pour obtenir le HtmlInputControls à travailler. Cela semblait être ce qui me manquait. – Caveman42