Comment récuperer le texte contenu dans un Formview pour le mettre dans un textb

hugo7 Messages postés 352 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 29 juin 2011 - 22 oct. 2008 à 20:25
hugo7 Messages postés 352 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 29 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.

36 réponses

ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
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...

GGtry
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
23 oct. 2008 à 06:24
Salut,
pour la question1 :
dim tb as textbox = formview1.findcontrol("TonTextbox")

pour la question2 :
suite à cette même déclaration,
tb.enable=False

bon code.
0
hugo7 Messages postés 352 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 29 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.
0
hugo7 Messages postés 352 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 29 juin 2011
23 oct. 2008 à 19:02
Oups j'ai oublier de vous dire l'eereur qu'il me donne :

Une valeur de type 'System.Web.UI.WebControls.TextBox' ne peut pas être convertie en 'String'.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
23 oct. 2008 à 19:13
Salut,
dim lb as label = formview2.findcontrol("Colum1Label1")
dim tb as textbox = formview1.findcontrol("Sujet_IdTetxbox")
tb.text=lb.text

@+
0
hugo7 Messages postés 352 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 29 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."

Si quelqu'un aurait une solution merci.
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
23 oct. 2008 à 20:19
C'est qu'il y a un des controles qu'il ne trouve pas.
Vérifie les guillements et l'orthographe ou sinon en mode debug ...
@+
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 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 !

@+
0
hugo7 Messages postés 352 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 29 juin 2011
23 oct. 2008 à 21:07
J'ai corriger l'orthographe et vérifier les guillemets mais sa marche toujours pas.
Aidez-moi si il vous plait
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
23 oct. 2008 à 21:27
tu peux montrer ton code stp ?
0
hugo7 Messages postés 352 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 29 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" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Page sans titre</title>
</head>

    <form id="form1" runat="server">
   

        "
            SelectCommand="SELECT * FROM [Categorie]">
       
       
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
       

        "
            SelectCommand="SELECT * FROM [Sujet] WHERE ([categorie-id] = @column1)">
            <SelectParameters>
               
            </SelectParameters>
       
       
            <Columns>
               
               
               
               
            </Columns>
       
        "
            SelectCommand="SELECT * FROM [Réponse] WHERE ([sujet_id] = @sujet_id)">
            <SelectParameters>
               
            </SelectParameters>
       
       
            <Columns>
               
               
               
            </Columns>
       
       
            <EditItemTemplate>
                column1:
                ' />
               

               
                &nbsp;
            </EditItemTemplate>
           
                column1:
                ' />
               

               
                &nbsp;
           
           
                column1:
                ' />
               

           
       
       

        "
            InsertCommand="StoredProcedure1" InsertCommandType="StoredProcedure"
            SelectCommand="SELECT * FROM [Réponse]">
           
               
               
           
       
        "
            SelectCommand="SELECT [sujet-id] AS column1 FROM [Sujet] WHERE ([sujet-id] = @column1)">
            <SelectParameters>
               
            </SelectParameters>
       
&nbsp;
       
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <EditItemTemplate>
                réponse_id:
                ' />
               

                réponse_texte:
                ' />
               

                sujet_id:
                ' />
               

               
                &nbsp;
            </EditItemTemplate>
           
                réponse_texte:
                ' />
               

                sujet_id:
                ' />
               

               
                &nbsp;
           
           
                réponse_id:
                ' />
               

                réponse_texte:
                ' />
               

                sujet_id:
                ' />
               

               
           
       
        &nbsp;&nbsp;
       

        "
            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

Voila +
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
23 oct. 2008 à 21:54
essaie ceci

Protected

Sub FormView1_Load(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles FormView1.Load

Dim lb
As Label = FormView2.FindControl(
"column1Label")

Dim tb
As TextBox = FormView1.FindControl(
"sujet_idTextBox")tb.Text = lb.Text

End
Sub
0
hugo7 Messages postés 352 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 29 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 +
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
24 oct. 2008 à 09:15
Tu devrias replacer "sub" juste après "protected" sur la même ligne.
VB n'a peut-être pas fait le lien entre les deux . Ca arrive quelquefois ...
@+
0
hugo7 Messages postés 352 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 29 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.
+
0
hugo7 Messages postés 352 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 29 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

Donc si quelqu'un pouvait m'aider
0
hugo7 Messages postés 352 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 29 juin 2011
24 oct. 2008 à 19:38
Je tenais à préciser que le texte que je récupère est un chiffre.
0
ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
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é.

GGtry
0
hugo7 Messages postés 352 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 29 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.
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 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).
@+
0
Rejoignez-nous