ASP.Net : problème de Textbox

cs_Suffren Messages postés 92 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 9 août 2004 - 27 mai 2004 à 15:36
cs_Suffren Messages postés 92 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 9 août 2004 - 29 juin 2004 à 11:19
Bonjour,
j'ai un problème avec des Textbox qui sont par défaut déclarées en "protected". Si je veux les utiliser dans une fonction, il faut qu'elles soient en public.
Or lorsque je les met en public et que je l'exécute, elles ne le restent que pour deux ou trois exécutions.
quelqu'un aurait-il une idée pour les forcer à rester publiques?
Cordialement,
Suffren

16 réponses

ilsandor Messages postés 39 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 avril 2005
28 mai 2004 à 01:51
Bonjour

je pense que friend serait deja plus approprié que public mais encore faudrait t'il savoir dans quel context tes textbos ont définis et comment tu veux les utiliser exactement

a+
0
cs_Suffren Messages postés 92 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 9 août 2004
28 mai 2004 à 15:54
Bonjour,
finalement, il n'y a plus de problème mais j'ignore ce qui s'est passé.
désolée de t'avoir dérangé.
Cordialement,
Suffren
0
cs_Suffren Messages postés 92 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 9 août 2004
25 juin 2004 à 10:08
Bonjour,
en fait ce qui se passe c'est que dés que je change quelque chose dans la page, il remet tous les textbox en Protected et je dois les remettre en Public à la main pour y avoir accès .Alors çà va s'il n'y en a que 5 ou6 mais s'il y en a plus çà risque d'être fastidieux et long.
Si je mets Friend ne risque-t-il pas de tout remettre en Protected?
Cordialement,
Suffren
0
ilsandor Messages postés 39 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 avril 2005
25 juin 2004 à 10:17
avec quel ide travailles tu?

c'est curieux car moi j'utilise cette synthaxe la dans webform
Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
    Protected WithEvents TextBox2 As System.Web.UI.WebControls.TextBox

Je n'ai pas le moindre problème pour accéder aux propriétés de la classe de la page elle même.
Toutefois, je ne me sais pas exactement pourquoi les contrôles doivent être déclarés de cette manière (je me suis surtout penché sur les webservices jusqu'ici).
Ceci dit si tu dois accéder aux propriétés de tes textbox depuis une autre classe je pense que tu devrais créer des propriétés en public.
IlSandor
www.ilsandor.net
0

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

Posez votre question
cs_Suffren Messages postés 92 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 9 août 2004
25 juin 2004 à 10:29
Je travaile sous VS.Net et je dois accéder aux textbox à partir d'une autre classe qui les remplit automatiquement avecles données d'Access.
Que veux-tu dire par "créer des propriétés en public"? S'agit-il de "poperty"? Si oui comment çà marche?

Cordialement,
Suffren
0
ilsandor Messages postés 39 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 avril 2005
25 juin 2004 à 10:56
la syntaxe d'une propriété c ca

    Public Property textbox1Text() As String
        Get
            Return TextBox1.Text
        End Get
        Set(ByVal Value As String)
            TextBox1.Text = Value
        End Set
    End Property


IlSandor
www.ilsandor.net
0
cs_Suffren Messages postés 92 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 9 août 2004
25 juin 2004 à 10:59
Ok mais je le mets où?
Désolée mais là je ne connais pas.
Cordialement,
Suffren
0
ilsandor Messages postés 39 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 avril 2005
25 juin 2004 à 11:03
tu peux aussi le faire avec une variable

private m_value as string

    Public Property textbox1Text() As String
        Get
            Return m_value
        End Get
        Set(ByVal Value As String)
            m_value = Value
        End Set
    End Property


ou inclure des traitements des verifs etc...

private m_value as string
private m_int as integer

    Public Property textbox1Text() As String
        Get
            Return m_value
        End Get
        Set(ByVal Value As String)
if Value = "" then
throw new exception("chaine vide")
           else
 m_value = Value
end if
        End Set
    End Property

 Public Property theint() As Integer
        Get
            Return m_int
        End Get
        Set(ByVal Value As String)
try
m_int  = Integer.parse(value)
catch ex as exception
end try
        End Set
    End Property



IlSandor
www.ilsandor.net
0
ilsandor Messages postés 39 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 avril 2005
25 juin 2004 à 11:04
ca se met dans le coprs de la classe de ta page
ou de la classe qui contient la variable traitée
IlSandor
www.ilsandor.net
0
cs_Suffren Messages postés 92 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 9 août 2004
25 juin 2004 à 11:15
D'accord dois-je mettre autant de propriétés que de textbox?
Cordialement,
Suffren
0
ilsandor Messages postés 39 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 avril 2005
25 juin 2004 à 11:32
oui et non

en effet tu peux créer une propriété par textbox ca c'est le plus simple mais tu peux aussi le faire avec deux fonction

public sub WriteTextBox(Id as String, Value as String)
CType(Me.FindControl("test"), TextBox).Text = "test"
End Sub

public function ReadTextBox(Id as string) as string
Return CType(Me.FindControl("test"), TextBox).Text
End Function


IlSandor
www.ilsandor.net
0
ilsandor Messages postés 39 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 avril 2005
25 juin 2004 à 11:33
je me suius planté dans le code

public sub WriteTextBox(Id as String, Value as String)
CType(Me.FindControl(Id), TextBox).Text = Value
End Sub

public function ReadTextBox(Id as string) as string
Return CType(Me.FindControl(Id), TextBox).Text
End Function

IlSandor
www.ilsandor.net
0
cs_Suffren Messages postés 92 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 9 août 2004
25 juin 2004 à 11:55
Le problème est que j'utilise une fonction d'une classe pour remplir ce formulaire.

Le formulaire est InfosClient.aspx et il appelle la fonction
FonctFormBoucle(ByVal IDClient As Integer, ByRef nom_page As System.Web.UI.Page) :

'Parcourt des contrôles de la page
For Each Controle In nom_page.Controls(1).Controls
     nomchamp = Controle.ID
     'Si les 4 premiers carac du nom forment Text alors
     If Left(nomchamp, 4) Like "Text" Then
           nom = nomchamp.Remove(0, 4)
           'Recherche dans la base si le champ existe
           For Each objDataCol In objDataTable.Columns
                nom_champ = objDataCol.ColumnName
                If nom_champ Like nom Then
                     'Remplissage du champ de saisie
                      champtexte = nom_page.Controls(1).FindControl("Text" + nom)
                      champtexte.Text = objDataTable.Rows(intRowNumber).Item(nom_champ)
                      Exit For
               End If
           Next
      End If
Next


Le "Me" doit se transfoermer en nom_page.Controls(1) si je mets les fonctions dans la même classe que FonctFormBoucle.
si par contre je le mets dans la classe de mon WebForm comment puiis-je y accéder à partir de la fonction FonctFormBoucle?
Cordialement,
Suffren
0
ilsandor Messages postés 39 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 avril 2005
25 juin 2004 à 12:17
ta fonction tu la mets dans une classe ou dans un module?
IlSandor
www.ilsandor.net
0
cs_Suffren Messages postés 92 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 9 août 2004
25 juin 2004 à 14:02
La fonction est dans une classe
Cordialement,
Suffren
0
cs_Suffren Messages postés 92 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 9 août 2004
29 juin 2004 à 11:19
Bonjour,
Même si je mets tes fonctions çà ne change rien car il me met que les contrôles sont inaccessible car "Protected".
En plus, la première fois que j'ai testé les fonctions il acceptait le CType ce qui n'est plus le cas. Qu'en penses-tu?
Cordialement,
Suffren
0
Rejoignez-nous