Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[ASP.NET][VB] Problème pour accèder aux propriété d'un UserControl en code-behind

4 réponses
Avatar
Thibault
Bonjour à tous,

J'ai un soucis pour accèder aux propriétés d'un UserControl.

J'ai créé un UserControl avec un textbox dedans dans Visual Studio .Net.

J'ai ajouté une propriété pour récupérer la saisie utilisateur comme ceci :

MonUserControl.ascx :

Public Class MonUserControl
Inherits System.Web.UI.UserControl

Public Property monChamp() As String
Get
Return Textbox.Text
End Get
Set(ByVal Value As String)
Textbox.Text = Value
End Set
End Property

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'Placez ici le code utilisateur pour initialiser la page
End Sub
End Class

Je place mon UserControl dans mon WebForm nommé WebForm1.aspx ainsi qu'un
bouton.
Dans le code behind de mon WebForm, au clique du bouton j'aimerais récupérer
ce que l'utilisateur a saisi dans le texbox.
Donc je procède comme ceci :

WebForm1.aspx.vb :

Public Class WebForm1
Inherits System.Web.UI.Page

Protected MonUserControl As UserControl

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click

Response.Write(MonUserControl.monChamp)

End Sub
End Class

Et là ça ne fonctionne pas, il me dit que "monChamp" n'est pas un membre de
System.Web.UI.UserControl !!!!!

Est ce que quelqu'un pourrait m'expliquer d'où provient le problème ????

Merci d'avance

4 réponses

Avatar
Patrice
Ce n'est effectivement pas le type "UserControl" qui fournit cette propriété
mais le type "MonUserControl" qui hérite de UserControl et y ajoute cette
propriété.

Le plus simple est sans doute de déclarer la variable MonUserControl de type
"MonUserControl" et non pas "UserControl"...

Patrice


--

"Thibault" a écrit dans le message de
news:
Bonjour à tous,

J'ai un soucis pour accèder aux propriétés d'un UserControl.

J'ai créé un UserControl avec un textbox dedans dans Visual Studio .Net.

J'ai ajouté une propriété pour récupérer la saisie utilisateur comme ceci


:

MonUserControl.ascx :

Public Class MonUserControl
Inherits System.Web.UI.UserControl

Public Property monChamp() As String
Get
Return Textbox.Text
End Get
Set(ByVal Value As String)
Textbox.Text = Value
End Set
End Property

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'Placez ici le code utilisateur pour initialiser la page
End Sub
End Class

Je place mon UserControl dans mon WebForm nommé WebForm1.aspx ainsi qu'un
bouton.
Dans le code behind de mon WebForm, au clique du bouton j'aimerais


récupérer
ce que l'utilisateur a saisi dans le texbox.
Donc je procède comme ceci :

WebForm1.aspx.vb :

Public Class WebForm1
Inherits System.Web.UI.Page

Protected MonUserControl As UserControl

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click

Response.Write(MonUserControl.monChamp)

End Sub
End Class

Et là ça ne fonctionne pas, il me dit que "monChamp" n'est pas un membre


de
System.Web.UI.UserControl !!!!!

Est ce que quelqu'un pourrait m'expliquer d'où provient le problème ????

Merci d'avance




Avatar
Thibault
Merci Patrice, cela fonctionne très bien.

Thibault


"Patrice" a écrit dans le message de news:

Ce n'est effectivement pas le type "UserControl" qui fournit cette
propriété
mais le type "MonUserControl" qui hérite de UserControl et y ajoute cette
propriété.

Le plus simple est sans doute de déclarer la variable MonUserControl de
type
"MonUserControl" et non pas "UserControl"...

Patrice


--

"Thibault" a écrit dans le message de
news:
Bonjour à tous,

J'ai un soucis pour accèder aux propriétés d'un UserControl.

J'ai créé un UserControl avec un textbox dedans dans Visual Studio .Net.

J'ai ajouté une propriété pour récupérer la saisie utilisateur comme ceci


:

MonUserControl.ascx :

Public Class MonUserControl
Inherits System.Web.UI.UserControl

Public Property monChamp() As String
Get
Return Textbox.Text
End Get
Set(ByVal Value As String)
Textbox.Text = Value
End Set
End Property

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'Placez ici le code utilisateur pour initialiser la page
End Sub
End Class

Je place mon UserControl dans mon WebForm nommé WebForm1.aspx ainsi qu'un
bouton.
Dans le code behind de mon WebForm, au clique du bouton j'aimerais


récupérer
ce que l'utilisateur a saisi dans le texbox.
Donc je procède comme ceci :

WebForm1.aspx.vb :

Public Class WebForm1
Inherits System.Web.UI.Page

Protected MonUserControl As UserControl

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click

Response.Write(MonUserControl.monChamp)

End Sub
End Class

Et là ça ne fonctionne pas, il me dit que "monChamp" n'est pas un membre


de
System.Web.UI.UserControl !!!!!

Est ce que quelqu'un pourrait m'expliquer d'où provient le problème ????

Merci d'avance








Avatar
Dany_Vincent
Selon mon exemple:

Lorsque tu déclares ta variable pour ton userControl

tu dois ce faire comme cela:
Protected entete As EnteteUserControl

et non comme cela:
Protected entete As UserControl


EXEMPLE:

MonUserControl.ascx :

Public Class EnteteUserControl
Inherits System.Web.UI.UserControl

Public Property monChamp() As String
Get
Return Textbox.Text
End Get
Set(ByVal Value As String)
Textbox.Text = Value
End Set
End Property

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'Placez ici le code utilisateur pour initialiser la page
End Sub
End Class

WebForm1.aspx.vb :

Public Class WebForm1
Inherits System.Web.UI.Page

Protected entete As EnteteUserControl

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click

Response.Write(entete.monChamp)

End Sub
End Class


'***************************************************


"Thibault" a écrit :

Bonjour à tous,

J'ai un soucis pour accèder aux propriétés d'un UserControl.

J'ai créé un UserControl avec un textbox dedans dans Visual Studio .Net.

J'ai ajouté une propriété pour récupérer la saisie utilisateur comme ceci :

MonUserControl.ascx :

Public Class MonUserControl
Inherits System.Web.UI.UserControl

Public Property monChamp() As String
Get
Return Textbox.Text
End Get
Set(ByVal Value As String)
Textbox.Text = Value
End Set
End Property

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'Placez ici le code utilisateur pour initialiser la page
End Sub
End Class

Je place mon UserControl dans mon WebForm nommé WebForm1.aspx ainsi qu'un
bouton.
Dans le code behind de mon WebForm, au clique du bouton j'aimerais récupérer
ce que l'utilisateur a saisi dans le texbox.
Donc je procède comme ceci :

WebForm1.aspx.vb :

Public Class WebForm1
Inherits System.Web.UI.Page

Protected MonUserControl As UserControl

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click

Response.Write(MonUserControl.monChamp)

End Sub
End Class

Et là ça ne fonctionne pas, il me dit que "monChamp" n'est pas un membre de
System.Web.UI.UserControl !!!!!

Est ce que quelqu'un pourrait m'expliquer d'où provient le problème ????

Merci d'avance





Avatar
Thibault
Merci Dany_Vincent, tout fonctionne à présent ...

"Dany_Vincent" a écrit dans le
message de news:
Selon mon exemple:

Lorsque tu déclares ta variable pour ton userControl

tu dois ce faire comme cela:
Protected entete As EnteteUserControl

et non comme cela:
Protected entete As UserControl


EXEMPLE:

MonUserControl.ascx :

Public Class EnteteUserControl
Inherits System.Web.UI.UserControl

Public Property monChamp() As String
Get
Return Textbox.Text
End Get
Set(ByVal Value As String)
Textbox.Text = Value
End Set
End Property

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'Placez ici le code utilisateur pour initialiser la page
End Sub
End Class

WebForm1.aspx.vb :

Public Class WebForm1
Inherits System.Web.UI.Page

Protected entete As EnteteUserControl

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click

Response.Write(entete.monChamp)

End Sub
End Class


'***************************************************


"Thibault" a écrit :

Bonjour à tous,

J'ai un soucis pour accèder aux propriétés d'un UserControl.

J'ai créé un UserControl avec un textbox dedans dans Visual Studio .Net.

J'ai ajouté une propriété pour récupérer la saisie utilisateur comme ceci
:

MonUserControl.ascx :

Public Class MonUserControl
Inherits System.Web.UI.UserControl

Public Property monChamp() As String
Get
Return Textbox.Text
End Get
Set(ByVal Value As String)
Textbox.Text = Value
End Set
End Property

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'Placez ici le code utilisateur pour initialiser la page
End Sub
End Class

Je place mon UserControl dans mon WebForm nommé WebForm1.aspx ainsi qu'un
bouton.
Dans le code behind de mon WebForm, au clique du bouton j'aimerais
récupérer
ce que l'utilisateur a saisi dans le texbox.
Donc je procède comme ceci :

WebForm1.aspx.vb :

Public Class WebForm1
Inherits System.Web.UI.Page

Protected MonUserControl As UserControl

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click

Response.Write(MonUserControl.monChamp)

End Sub
End Class

Et là ça ne fonctionne pas, il me dit que "monChamp" n'est pas un membre
de
System.Web.UI.UserControl !!!!!

Est ce que quelqu'un pourrait m'expliquer d'où provient le problème ????

Merci d'avance