casa51
Messages postés37Date d'inscriptionjeudi 4 avril 2002StatutMembreDernière intervention18 octobre 2009
-
12 janv. 2009 à 20:28
casa51
Messages postés37Date d'inscriptionjeudi 4 avril 2002StatutMembreDernière intervention18 octobre 2009
-
19 févr. 2009 à 19:19
bonjour,
voila j'essaye via un ascx que j'appelle dans toutes les pages du site
d'envoyer une valeur
ex : page1.aspx (qui inclu mon controle ascx) envoie vers page2.aspx
-----------------------------------------------------------------
ma page : page2.aspx
dans le code behind
-----------------------------------------------------------------
ProtectedSub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs)HandlesMe.Load
IfNot Page.PageIsNothingThen
Dim SourceTextBox As DropDownList
SourceTextBox = CType(Page.FindControl("type_asso"), DropDownList)
IfNot SourceTextBox IsNothingThen
Label1.Text = SourceTextBox.Text
Else
Label1.Text = "pas de valeur"
EndIf
endsub
---------------------------------------------------------------------
quand je selectionne une valeur dans mon menu deroulant et que je valide la page
sa me retourne "pas de valeur" la page2.aspx n'arrive pas à récupérer la valeur du module ascx
j'ai pourtant modifier le (Page.PreviousPage par page.page ) mais sa ne marche pas non plus
par contre si je met mes formulaire directement dasn ma page1.aspx et que je valide, la ma page2.aspx me retourne bien la valeur. je pense que sa viens bien de ma syntaxe de récupération de ma page2.aspx ?
ggtry
Messages postés417Date d'inscriptionvendredi 13 juin 2008StatutMembreDernière intervention21 juillet 20101 19 févr. 2009 à 18:01
Bonjour,
Si je comprends bien ce que tu fais, c'est parce que, lorsque tu travailles seulement dans ta page resultat.aspx, tu n'as pas accès à cette même page, lors du postback, avec page.previouspage (puisqu'il s'agit de la même page, et non de deux pages différentes).
Tu dois donc chercher ton contrôle simplement avec page.findcontrol. Tu peux donc différencier la recherche du contrôle, selon que la page est postback (if page.ispostback then...) ou selon qu'il y a une previouspage.
ggtry
Messages postés417Date d'inscriptionvendredi 13 juin 2008StatutMembreDernière intervention21 juillet 20101 13 janv. 2009 à 00:03
Bonsoir,
Je ne connais rien aux ascx.
page.page ne peut pas marcher en tout cas (enfin, je ne vois pas comment cela pourrait marcher).
Tu fais apparemment un copier/coller de ton dernier essai...
Mais, est-ce que tu as essayé avec :
sourcetextbox=ctype(page.previouspage.findcontrol("type_asso"), dropdownlist) ?
(page.findcontrol ne peut que chercher dans la page actuelle, pas dans celle qui est à l'origine du postback, cela paraît donc être la cause immédiate pour laquelle ton contrôle est nothing dans ta deuxième page...)
SuperBouly
Messages postés410Date d'inscriptiondimanche 1 février 2004StatutMembreDernière intervention 8 mai 2010 13 janv. 2009 à 08:45
bonjour,
tu peux faire déjà une propriété du genre (en vb.net) :
Public
Property Selection ()
As
String
Get
_Selection =maDropDownList.SelectedValue
Return _Selection
End
Get
Set(
ByVal value
As
String)
_Selection = value
maDropDownList.SelectedValue=_Selection
End
Set
End
Propertyet ensuite déclarer un évènement ClickBouton
Public Event ClickBouton()
enfin dans la sub
Protected
Sub monBouton_Click(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles monBouton.Click
RaiseEvent ClickBouton()
End
Subtu pourras alors récupérer la valeur dans ta page principale à
Private sub MonUserControl1_ClickBouton (s as...) Handles monUserControl1.ClickBouton
MavaleurRecoltee=MonUserControl1.Selection
end sub
SuperBouly
Vous n’avez pas trouvé la réponse que vous recherchez ?
casa51
Messages postés37Date d'inscriptionjeudi 4 avril 2002StatutMembreDernière intervention18 octobre 2009 13 janv. 2009 à 09:38
merci de votre aide
j'ai essayer comme tu mettais
--------------------------------------------------------------------
If
Not
Page.PreviousPage
Is
Nothing
Then
Dim
SourceTextBox
As
DropDownListSourceTextBox =
CType
(Page.PreviousPage.FindControl(
"type_asso"
), DropDownList)
If
Not
SourceTextBox
Is
Nothing
Then
Label1.Text = SourceTextBox.Text
Else
Label1.Text =
"pas de valeur"
End
If
End
If
--------------------------------------------------------------------
1 / deja pas d'erreur
2/ par contre j'ai toujours mon label a "pas de valeur" donc il ne recoit rien de mon ascx
je crois que le probleme viens de l'ascx
voila le code de mon ascx
il n y a pas de code behind
-----------------------------------------------------------------------------------
la sa marche nikel !!!
vais regarder le code de superbouly
merci encore de votre aide
SuperBouly
Messages postés410Date d'inscriptiondimanche 1 février 2004StatutMembreDernière intervention 8 mai 2010 13 janv. 2009 à 09:57
je viens de regarder à nouveau ton post :
Si tu changes de page (page1 --> page2) le controle utilisateur est rechargé, et donc c'est absolument normal que rien ne soit envoyé.
Il faut, pour utiliser le code que j'ai proposé, rester sur la même page. Au fait, pourquoi changes-tu de page? Tu peux peut-être inclure ton controle dans une masterPage.
casa51
Messages postés37Date d'inscriptionjeudi 4 avril 2002StatutMembreDernière intervention18 octobre 2009 13 janv. 2009 à 10:42
merci super bouly
ben je coomence a developper en dotnet je viesn de l'asp 3.0 je n'ai pas forcement les bon reflexes....
j'ai commencer à developper ce site d'asso avec un ascx (barre de nav) un ascx (bas de page) et un ascx (moteur de recherche) j 'ai calcer ma facon de travailler comme je faisait en asp avec les include. Enfet j'ai pas trop accrocher avec les masterpages. (faudra bien que je my mette un jour..)
vais essayer ta methode par contre excuse moi mais j'ai pas tout capter
quand tu dit :
tu peux faire déjà une propriété du genre (en vb.net) :
PublicProperty Selection () As
String
Get
_Selection = maDropDownList.SelectedValue
Return _Selection
EndGet
Set(ByVal value AsString)
_Selection = value
maDropDownList.SelectedValue=_Selection
End
Set
EndPropertyet ensuite déclarer un évènement ClickBouton
Public Event ClickBouton()
c'est dans mon ascx ?
---------------------------------------------------------
et apres
ProtectedSub monBouton_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles monBouton.Click
RaiseEvent ClickBouton()
EndSub
toujours dans l'ascx ?
tu pourras alors récupérer la valeur dans ta page principale à
Private sub MonUserControl1_ClickBouton (s as...) Handles monUserControl1.ClickBouton
MavaleurRecoltee =MonUserControl1.Selection
"It is because there is no previous page when doing the search from the
current page. All you need to do is change your call from
PreviousPage.Master to Page.Master to find your control.
"
merci encore de ton aide.
casa51
Messages postés37Date d'inscriptionjeudi 4 avril 2002StatutMembreDernière intervention18 octobre 2009 13 janv. 2009 à 12:14
prochain site je teste les master page.
j'utilise en design expression web 2.0
et en prog visual 2008
le combo est super !!!
sa me change de dreamweaver.
ggtry
Messages postés417Date d'inscriptionvendredi 13 juin 2008StatutMembreDernière intervention21 juillet 20101 13 janv. 2009 à 12:19
Bonjour,
Concernant le findcontrol, as-tu essayé de récupérer d'abord ton usercontrol, puis ta dropdownlist à l'intérieur de celui-ci ?
J'ai fait un essai en mettant un usercontrol dans une page (avec un textbox et une ddl dedans) et j'arrive à récupérer sur la deuxième page la ddl ou le textbox contenus dans l'usercontrol en faisant cela :
(nb, en mettant <%@ Register Src="WebUserControl.ascx" TagName="WebUserControl" TagPrefix="uc1" %> sur les deux pages)
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
If Not Page.PreviousPage Is Nothing Then
Dim uc As WebUserControl = CType(Page.PreviousPage.FindControl("WebUserControl1"), WebUserControl)
Dim tb As TextBox = CType(uc.FindControl("TextBox1"), TextBox)
Dim ddl As DropDownList = CType(uc.FindControl("DropDownList1"), DropDownList)
Label1.Text = ddl.SelectedItem.Text
End If
End Sub
ggtry
Messages postés417Date d'inscriptionvendredi 13 juin 2008StatutMembreDernière intervention21 juillet 20101 13 janv. 2009 à 16:24
Salut,
Essaie avec "usercontrol" plutôt que ce que j'avais mis (le truc avec webusercontrol était idiot...) :
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.PreviousPage Is Nothing Then
Dim uc As UserControl = CType(Page.PreviousPage.FindControl("WebUserControl1"), UserControl)
Dim tb As TextBox = CType(uc.FindControl("TextBox1"), TextBox)
Label1.Text = ddl.SelectedItem.Text
End If
End Sub
casa51
Messages postés37Date d'inscriptionjeudi 4 avril 2002StatutMembreDernière intervention18 octobre 2009 19 févr. 2009 à 17:27
bonsoir,
encore moi
j'ai un petit souci que je ne pige page
voila je resume la situation j'ai 4 pages qui utilise toutes un controle d'utilisateur qui contient des un déroulant "petit moteur de recherche" qui un fois valider envoi une valeur dans la page recherche.aspx
voila mon probleme quand j'utilise le controle d'utilisateur dans les page 1 - 2 - 3 - 4 tout marche nikel
ma page resultat.aspx retrouve bien mes données par contre quand j'utilise ce controle DANS la page resultat.aspx (il est aussi présent dedans)
la par contre il trouve rien dans le previouspage !
je trouve pas la soluce .