HTML et C# [Résolu]

The Red Man 112 Messages postés vendredi 15 avril 2005Date d'inscription 13 juin 2010 Dernière intervention - 6 mai 2008 à 10:10 - Dernière réponse : The Red Man 112 Messages postés vendredi 15 avril 2005Date d'inscription 13 juin 2010 Dernière intervention
- 8 mai 2008 à 12:49
Bonjour  à tous,

J'aimerai savoir comment peut récupérer un id ou name   d'un "composant" html à partir du code-behind C# ???!!!

voici mon extrait de code :

<select id="e" name="e">
  ...
</select>

<textarea id="t" name="t"></textarea>

De plus, ce code htlm est généré depuis le code-behind et envoyé a un literal.

SVP c'est important !

Merci !
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
The Red Man 112 Messages postés vendredi 15 avril 2005Date d'inscription 13 juin 2010 Dernière intervention - 7 mai 2008 à 01:17
1
Merci
j'ai trouvé la solution.

Voici l'explication :
Si avez du contenu HTML dans votre page ASPX, vous devez pour chaque control HTML spécifier à la fois l'id du control et le fameux runat= "server". A partir du code-behind (pour ma part C#), vous pourrez très facilement récupérer ce control en faisant ceci :

this.IdControlHTML.{ Property, Methods,... }

Par exemple :
// contenu .aspx
<select id="Mouaa" runat="server">
   <option id="Option1" value="1">1</option>
   <option id="Option2" value="2">2</option>
</select>
 
// code-behind .cs
this.Mouaa.visible = false;

Si vous générez du HTML à partir du code-behind pour le stocker dans un div, panel ou literal. Il suffira dans ce cas utiliser Request.Form[HtmlControlName] (HtmlControlName = string name).

Or pour utiliser ceci il faut bien seulement spécifier la propriété name.

Par exemple :
// contenu .cs
// admettons que le contenu html généré et comme ceci
<select id ="Mouaa" name="Mouaa">
   <option id="Option1" value="1">1</option>
   <option id="Option2" value="2">2</option>
</select>

Pour récupérer la valeur de la sélection, il suffira de faire : Request.Form["Mouaa"]

Voilà !

J'espere que ça servira à quelqu'un !

Merci The Red Man 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de The Red Man
yassinebennani 249 Messages postés samedi 13 octobre 2007Date d'inscription 2 mai 2014 Dernière intervention - 6 mai 2008 à 12:41
0
Merci
Bonjour

Ajout la propriété runat="server" et tu va le retrouver son id dans le code behind.
<textarea id="TextArea1" cols="20" rows="2" runat="server">
______________________________________________________________
Yassine BENNANI - Ingénieur en génie logiciel & multimédia (Consultant SI)
Commenter la réponse de yassinebennani
The Red Man 112 Messages postés vendredi 15 avril 2005Date d'inscription 13 juin 2010 Dernière intervention - 6 mai 2008 à 14:25
0
Merci
Merci !

Je vais essayer ça !

:)
Commenter la réponse de The Red Man
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 8 mai 2008 à 00:05
0
Merci
Bonjour,

Cette approche n'est pas du tout conventionnel pour ASP.net ... Je ne comprend pas ce que tu cherches à faire exactement, mais je te conseille de penser "controle" et non génération de HTML comme en php ...

En fait chaque page est compilé dans une page qui hérite de ton code-behind. Cette classe est invisible pour toi, c'est ASP.net qui la génére pour toi. Lors du parsing de la page aspx (pour pouvoir la compiler) le parseur vachercher toutes les balises ayant l'attribut runat="server" si cette attribut est présent alors il va déclarer une variable avec la propriété id (ou alors un id autogénéré) du type de ta balise. C'est pour ca que rajouter runat="server" permet d'avoir accès au contrôles dans le code-behind. Mais attention si tu utilises une masterpage ou un UserControl l'id du contrôle ne sera pas forcément l'id généré, il faut alors regarder la propriété ClientID

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
Commenter la réponse de jesusonline
The Red Man 112 Messages postés vendredi 15 avril 2005Date d'inscription 13 juin 2010 Dernière intervention - 8 mai 2008 à 12:49
0
Merci
Bonjour,

Malheureusement développer des site web est un peu difficile pour moi. Merci pour l'information.

Cordialement !
Commenter la réponse de The Red Man

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.