comment obtenir des <input type=hidden> avec FindControl
Je suis en train d'essayer d'obtenir la valeur d'un caché d'entrée dans le code derrière avec le code suivant. Je suis en train de le jeter, mais il ne le trouve pas , toute aide ?
((HtmlControl)FindControl("contentId"))
Je le déclarer aspx avec le code suivant:
<input id="contentId" type="hidden" />
Je ne veux pas runat serveur parce que j'ai mes propres raisons
- Comment est votre
input
déclaré dans la balise? - Si votre contrôle est le contrôle de serveur et il est résident sur certains autres, vous avez besoin de trouve de façon récursive. Voir geekswithblogs.net/QuandaryPhase/archive/2009/05/06/...
- Sans
runat="server"
votre seule option pour accéder dynamiquement à l'caché d'entrée est en utilisant le script côté client. De votre choix.
Vous devez vous connecter pour publier un commentaire.
D'accéder à un contrôle HTML à côté serveur (dans votre code C#), vous devez d'abord ajouter le runat="server" attribut. Donc, votre balisage devrait ressembler à
Maintenant, dans le code derrière vous, vous pouvez utiliser le contrôle par son id
contentId
même si le code derrière obtenu généré correctement.S'il vous plaît laissez-nous savoir pourquoi vous êtes obligé d'utiliser le FindControl, en premier lieu, qu'il peut être consulté en utilisant l'id directement.
Mise à jour
Que par le commentaire ci-dessous, l'utilisateur, pour quelque raison n'est pas intéressé à faire cette entrée a côté serveur de contrôle. Alors la seule possibilité qui vous permet de lire les valeurs à côté serveur est comme ci-dessous. Mais ce n'est pas conseillé, car les modifications au nom passe pas inaperçu et les pauses lors de l'exécution.
Dans Le Code
this.Request.Forms["contentName"]
serait de retour la valeur cachée.Essayez de rechercher dans la page de cette façon
Pour obtenir la valeur:
Ensuite avec cela, vous pouvez le mettre dans une chaîne, si vous le souhaitez.
Utiliser ce code:
string s=((HiddenField)Panel1.FindControl("contentId")).Value;
Ici panel est le conteneur de contrôle. Cela peut être une grille ou quoi que ce soit d'autre ou même d'une page maître. Mais si vous utilisez FindControl, je pense que le contrôle peut être à l'intérieur de certaines conteneur.