Comment récuperer le texte contenu dans un Formview pour le mettre dans un textb
hugo7
Messages postés352Date d'inscriptionsamedi 11 décembre 2010StatutMembreDernière intervention29 juin 2011
-
22 oct. 2008 à 20:25
hugo7
Messages postés352Date d'inscriptionsamedi 11 décembre 2010StatutMembreDernière intervention29 juin 2011
-
31 oct. 2008 à 11:01
Bonjour à tous , comme le dit si bien le titre "Comment récuperer le texte contenu dans un Formview pour le mettre dans un textbox".
Je voudrais aussi savoir comment bloquer la saisie dans une textbox.
Merci d'avance pour vos réponses.
ggtry
Messages postés417Date d'inscriptionvendredi 13 juin 2008StatutMembreDernière intervention21 juillet 20101 22 oct. 2008 à 21:37
Bonsoir,
Sur le Load de ton textbox, par exemple, en supposant que le texte à récupérer est dans un label de ta formview (et que celle-ci n'a pas d'autre parent que ta page), en vb :
Protected Sub TextBox1_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Dim l1 As Label = CType(FormView1.FindControl("Ton_Label"), Label)
TextBox1.Text = l1.Text
End Sub
Pour l'autre question, "bloquer la saisie"... que veux-tu dire ?
Tu peux mettre ton textbox à enabled=false.
Ou alors, tu peux bloquer la saisie à tel nombre de caractère à l'aide de la propriété MaxLength.
Ou alors, avec du javascript, tu peux empêcher que la textbox prenne le focus...
Mais je ne vois pas bien ce que tu veux faire exactement...
hugo7
Messages postés352Date d'inscriptionsamedi 11 décembre 2010StatutMembreDernière intervention29 juin 2011 23 oct. 2008 à 18:59
ReBonjour cela ne marche pas j'ai une erreur.
je récapitule : J'ai un formview2 qui contient un label dont l'Id est "column1Label1".Ce label stocke du texte.
J'ai un Formview1 qui contient des textbox et je voudrais que le texte contenu dans le label du formview2 se mette dans la texte du formview 1 dont l'id est "sujet_idTextBox".
Je me met donc sur ma page default.aspx.vb et je tape le code suivant :
Protected Sub FormView1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles FormView1.Load
Dim sujet_idTextBox As TextBox = FormView2.FindControl(sujet_idTextBox)
End Sub.
Je pense que mon code est faux.
Je ne peut pas faire le code de ggtry qui est :
Protected Sub TextBox1_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Dim l1 As Label = CType(FormView1.FindControl("Ton_Label"), Label)
TextBox1.Text = l1.Text
End Sub
car la textbox n'a pas dévénement load , ces le controle formview qui la contient qui en a un.
A mon avis je me plante de partout donc si quelqu'un pourrait m'aider.
hugo7
Messages postés352Date d'inscriptionsamedi 11 décembre 2010StatutMembreDernière intervention29 juin 2011 23 oct. 2008 à 19:37
J'a un pb .
J'ai mis le code que tu m'as donnné equinoxe83 dans le load du formview1.
Lorsque que je lance le déboguage.
Il n'y reviens dans vs studio met la ligne de code "tb.Text = lb.Text" en jaune et me dit :
"L'exception NullReferenceException n'a pas été gérée par le code utilisateur"
En dessous
"La référence d'objet n'est pas définie à une instance d'un objet."
equinoxe83
Messages postés240Date d'inscriptionlundi 18 juin 2007StatutMembreDernière intervention18 février 2011 23 oct. 2008 à 20:35
pour info, je me suis trompé dansle second findcontrol (celui du textbox). Modifie l'orthographe et essaie à nouveau.
Pour le mode debug ... ben comme tu y es déjà ... Dsl !
hugo7
Messages postés352Date d'inscriptionsamedi 11 décembre 2010StatutMembreDernière intervention29 juin 2011 23 oct. 2008 à 21:39
Voici le code de ma page default.aspx contenant les formview ... :
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
"
SelectCommand="SELECT [sujet_id] FROM [Réponse] WHERE ([sujet_id] = @sujet_id)">
<SelectParameters>
</SelectParameters>
</form>
</html>
Voici le code de ma page default.aspx.vb :
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub FormView1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles FormView1.Load
Dim lb As Label = FormView2.FindControl("column1Label1")
Dim tb As TextBox = FormView1.FindControl("sujet_idTextBox")
tb.Text = lb.Text
End Sub
End Class
hugo7
Messages postés352Date d'inscriptionsamedi 11 décembre 2010StatutMembreDernière intervention29 juin 2011 24 oct. 2008 à 08:07
Il y a encore un probleme :
La lettre "d" du mot protected est souligné en bleu.
L'erreur me dit " Identificateur attendu"
Je tenais à préciser que mon FormView1 apparait au chargement de la page alors que mon Formview apparait apres que l'utilisateur est choisi un choix dans la liste déroulante t qu'il est cliqué sur le linkcolumn details.
Donc voila +
hugo7
Messages postés352Date d'inscriptionsamedi 11 décembre 2010StatutMembreDernière intervention29 juin 2011 24 oct. 2008 à 18:41
Désoler, j'ai fait comme tu m'a dit equinoxe38 pour le Sub.Je n'ai plus de pb de ce coté la mais il me remmet l'erreur : La référence d'objet n'est pas définie à une instance d'un objet.
Donc je sais pas.
Mais cela viens peut-etre du fait que mon label et ma textbox sont contenu dans des formview ?
Aidez-moi s'il vous plait.
+
hugo7
Messages postés352Date d'inscriptionsamedi 11 décembre 2010StatutMembreDernière intervention29 juin 2011 24 oct. 2008 à 19:13
J'ai essayer ce code mais sa ne marche toujours pas :
Protected Sub FormView1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles FormView1.Load
Dim lb As New Label
lb = FormView2.FindControl("column1Label1")
Dim tb As New TextBox
tb = FormView1.FindControl("sujet_idTextBox")
tb.Text = lb.Text
End Sub
ggtry
Messages postés417Date d'inscriptionvendredi 13 juin 2008StatutMembreDernière intervention21 juillet 20101 24 oct. 2008 à 19:43
Salut,
C'est normal. Tu essaies de récupérer un textbox qui est dans l'EditItemTemplate et l'InsertItemTemplate.
Pour le récupérer lors du load, il faudrait qu'il soit dans l'itemtemplate du formview, puisqu'il faudrait que tu sois sinon en mode edit ou insert...
Mais à vrai dire, je ne comprends pas très bien l'intérêt de la manoeuvre.
Tu peux cela dit mettre aussi un onload sur les textbox à l'intérieur d'insertitemtemplate, par exemple. Lorsque tu demanderas l'insert, le textbox pourra dans ce cas être trouvé.
hugo7
Messages postés352Date d'inscriptionsamedi 11 décembre 2010StatutMembreDernière intervention29 juin 2011 25 oct. 2008 à 09:14
Merci pour ta réponse ggtry mais mon formview1 est déja en mode insert mais pas mon formview2.
Pour l'histoire des itemtemplate....
Le but de cette manoeuvre ( récuperer le chiffre contenu dans le formview2 et le mettre dans une textbox du formview1) est que lorsque que l'utilisateur ajoutera sa réponse L'id du sujet sera présent.
De cette facon quand le sujet sera afficher les réponse ayant le meme Sujet-id que lui seront afficher.
J'éspère que vous m'avez compris , et si vous avez une meilleur solution je suis preneur.
equinoxe83
Messages postés240Date d'inscriptionlundi 18 juin 2007StatutMembreDernière intervention18 février 2011 25 oct. 2008 à 10:43
Salut,
Tout d'abord, tu devrais éviter d'utiliser des ID différentes d'un mode à l'autre (dans ton Formview2, ton premier label s'appelle column1Label en mode lecture et columnlabel1 en mode update). Mais ton Pb n'est pas là.
Je penses que tu places mal ta fonction. Elle devrait-être liée à l'évenement qui permet l'affichage du columnLabel.
Si tu places ta fonction dans le load du FV1, ce dernier n'est déclenché que par la sélection dans ton gridview associé ou à l'initialisation de la page (voir même au postback ... il me semble). Donc a un moment où ... il n'y a rien dans ton FV2 ... d'où l'erreur.
Tu dois donc placer cette fonction soit :
- lors du select dans le gridview associé à ton FV2
- lors de l'insert sur ton FV2 (mais là ton control est un textbox; il faut donc changer de nom dans ton findcontrol).
@+