La réponse à votre question est qu'ils ne sont pas des objets à tout le chemin que vous avez déclaré eux.
<asp:Textbox Id="TextBox1">SOMETEXT</asp:textbox>
<asp:Textbox Id="TextBox1">SOMETEXT2</asp:textbox>
Ce ne sont que des balises html avec la même propriété id. Regardez la source de la page Web et vous verrez qu'ils sont juste rendus sous forme de texte b/c le navigateur ne sait pas quoi faire w/tags. Au lieu de les convertir en entrées. Sans la balise Runat = "server", le compilateur ne les convertira pas en html avec les balises Id générées, elles ne seront pas non plus accessibles dans le code derrière. Lorsque vous ajoutez la balise runat = "server", vous devez remplacer les propriétés Id par des noms uniques, sauf dans le même contexte et donc ne pas avoir les mêmes identifiants. Fondamentalement, la réponse courte est, si vous voyez <asp:textbox...
lorsque vous affichez la source via votre navigateur, vous n'avez pas déclaré vos zones de texte correctement. Au lieu de cela, vous devriez voir <input ...
Qu'est-ce que E.G. Ligne supposée être? – CkH
Salut les gars, merci pour les réponses. Je semble avoir eu l'idée.Je ne l'ai pas expliquer ma question clearly.Basically j'avais un GridView et un contrôle detailsview sur la même page, chacun d'eux a un champ de modèle qui contient une zone de texte, avec un ID identique « textbox1 » .Mon compréhension est maintenant les deux objets TextBox sont déclarées à l'intérieur de l'objet gridview et des objets detailedview respectivement, afin qu'ils puissent avoir le même nom sans conflit. BTW il semble difficile d'écrire du code sur SO avec des balises '<>'? – Aperture
Voir ma réponse mise à jour. –