Bonjours,
Je veux savoir comment peut on détecter un controle HTML dans une page ASPX avec le code behind en prenant en compte que tous les controle HTML ne contient pas l'attribue runat="server"
Bonjours,
Je veux savoir comment peut on détecter un controle HTML dans une page ASPX avec le code behind en prenant en compte que tous les controle HTML ne contient pas l'attribue runat="server"
Landolsi
Si t'as pas runat=server, t'y a pas accès en code behind
mais il n'y pas d'autre méthode a faire car mon probleme je doit utiliser du javascript et pour le faire je suis besoin de "id" du controle mais je remarque que toutes les fonctions javascripts ne fonctionne pas a cause de modification du l'id du controle de la parts de Dotnet "il ya concaténation d'autre chaine avec l'id de mon controle"
exemple :
<asp:textBox id="aaa" runat="server" />
coté client je trouve:
<input type="text" id="$Ctl20$ContentPlaceHolder1$aaa" />
Landolsi
sa l'orsque on utilise les MasterPage donc on remarque la perde del'information coté client "Pas de Javascript donc => PROBLEME"
Landolsi
Je suis pas encore passé au 2.0 dc je peux pas t'aider la dessus
Je ne suis pas sûr qu'il soit en 2.0 puisque c'est un problème qui existait avec le composant MasterPage pour la version 1.1, et q'uil était censé être résolu pour la 2.0 (maintenant... "censé", hein ).
Landolsi, le préfixe ajouté à l'id de tes contrôles n'est pas aléatoire. Donc rien ne t'empêche dans ton javascript d'utiliser l'id modifiée.
Dans ton exemple, l'id à utiliser serait "$Ctl20$ContentPlaceHolder1$aaa".
Tu pourrait aussi essayer d'utiliser des contrôles html au lieu de contrôles web (balises html classiques mais avec runat="server" au lieu de la balise aspx). J'ignore si ça règlerait le problème, mais c'est une piste.
Mais le probleme persiste avec les controle HTML classic si j'utilise Runat="server" la modification se presente:
mais pour developper mon javascript je doit compiler la page aspx pour savoir l'id de mon controle puis je le note pour le mettre dans mon javascript mais vraiment c'est une perte de temps !!!
est ce qu il y a solution d'autre?
Landolsi
Perte de temps, certes, mais bon, elle est minime, et au moins ça marche.
Sinon, je crois que tu dois pouvoir récupérer l'ID client au moyen d'une des propriétés du contrôle ("ClientID" ?).
Dans ton code Javascript, définit une variable lui correspondant que tu initialises via des balises asp.
Merci infinement
vraiment c'est une bonne solution mais on doit ajouter "runat=server" , Pas probleme!
mais reste un petit probleme:
pour les controles server on ne peux pas générer un id automatique cad :
<asp:TextBox runat="server" ID="txt<% GetValue(); %>" />
donc comment faire MERCI
Landolsi
Crée des controles dynamiques auxquels tu va pouvoir assigner l'ID que tu veux.Envoyé par Landolsi
Voici un exemple de code pour créer un textbox. La fonction retourne un textbox que tu va pouvoir ajouter à la collection de controle de ton formulaire.
Comme tu peux le remarquer, c'est moi qui assigne l'ID que je désire à mon contrôle en passant la valeur en paramètre. Tu peux utiliser un compteur ou une fonction qui retourne le bon type de valeur dans la fonction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Public Function CreerTextBox(ByVal strId As String, ByVal strTexte As String) As System.Web.UI.Control Dim txtNew As New System.Web.UI.WebControls.TextBox txtNew.Text = strTexte ' ID ID ID ID txtNew.ID = strId ' ********** txtNew.Width = Unit.Pixel(48) Return txtNew End Function
Hana no iro wa
Utsuri ni keri na
Merci
je suis d'accords mais est ce que il n'y a pas d'autre méthode à faire directement avec le code HTML.
Landolsi
Faire du dynamique avec de l'HTMLEnvoyé par Landolsi
Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles
Merci
j'ai pus resoudre ce probeme avec ClientID et mon HTML est dynamique
Landolsi
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager