begin process at 2012 05 28 04:29:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

WebForms

 > 

PostBack

 > 

Postbackurl et ascx


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Postbackurl et ascx

lundi 12 janvier 2009 à 20:28:01 | Postbackurl et ascx

casa51

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

mon controle ascx :

---------------------------------------------------------------

<asp:DropDownList id="type_asso" runat="server" CssClass="menu-recherche"> <asp:ListItem Value="0"Text="asso"></asp:ListItem>
<asp:ListItem Value="ARIEGE"Text="cine"></asp:ListItem>
</asp:DropDownList>
<asp:ImageButton runat="server" id="ImageButton1" PostBackUrl="~/page2.aspx" ImageUrl="asso-photos/commun/btn-recherche.gif"></asp:ImageButton>

-----------------------------------------------------------------
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 ?

merci de votre aide

mardi 13 janvier 2009 à 00:03:27 | Re : Postbackurl et ascx

ggtry

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...)

GGtry
mardi 13 janvier 2009 à 08:45:44 | Re : Postbackurl et ascx

SuperBouly

Membre Club
bonjour,
tu peux faire déjà une propriété du genre (en vb.net) :

PublicProperty Selection () AsString
Get
_Selection =maDropDownList.SelectedValue
Return _Selection
EndGet
Set(ByVal value AsString)
_Selection = value
maDropDownList.SelectedValue=_Selection
EndSet
EndPropertyet ensuite déclarer un évènement ClickBouton
Public Event ClickBouton()

enfin dans la sub

ProtectedSub monBouton_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles monBouton.Click
RaiseEvent ClickBouton()
EndSubtu 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
mardi 13 janvier 2009 à 09:38:36 | Re : Postbackurl et ascx

casa51

merci de votre aide
j'ai essayer comme tu mettais

--------------------------------------------------------------------
If
Not Page.PreviousPage Is Nothing Then

Dim SourceTextBox As DropDownList

SourceTextBox =

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

------------------------------------------------------------------------

<%

@ControlLanguage="VB"ClassName="WebUserControl2" %>

<

asp:DropDownListid="type_asso"runat="server"CssClass="menu-recherche">

<asp:ListItemValue="0"Text="Types asso"></asp:ListItem>

<asp:ListItemValue="1"Text="cine"></asp:ListItem>

</asp:DropDownList>

<asp:ImageButtonrunat="server"id="ImageButton1"PostBackUrl="~/recherche.aspx"ImageUrl="photos/commun/btn-recherche.gif"></asp:ImageButton>

------------------------------------------------------------------------------

manque t'il quelque chose ?

quand je met directement ce dropdownlist dans une page avec cette forme

-------------------------------------------------------------------------------

<

formid="form1"runat="server">

<asp:DropDownListid="type_asso"runat="server"CssClass="menu-recherche">

<asp:ListItemValue="0"Text="Types asso"></asp:ListItem>

<asp:ListItemValue="1"Text="cine"></asp:ListItem>

</asp:DropDownList>

<asp:ButtonID="Button1"runat="server"Text="Button"PostBackUrl="~/test-postback/dest.aspx"/>

</form>

-----------------------------------------------------------------------------------
la sa marche nikel !!!
vais regarder le code  de superbouly
merci encore de votre aide

mardi 13 janvier 2009 à 09:57:53 | Re : Postbackurl et ascx

SuperBouly

Membre Club
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.

SuperBouly
mardi 13 janvier 2009 à 10:42:30 | Re : Postbackurl et ascx

casa51

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 () AsString
Get
_Selection =maDropDownList.SelectedValue
Return _Selection
End
Get
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
end sub

dans ma page2.aspx ?

j'ai trouvé sa aussi :
[ Lien ]
ou le gas lui conseille :

"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.
mardi 13 janvier 2009 à 11:01:34 | Re : Postbackurl et ascx

SuperBouly

Membre Club
Public Property et Protected Sub sont dans l'ascx
la page principale est la page dans laquelle tu veux récupérer la valeur
Utiliser une masterpage est extrèmement facile. Lances toi, tu ne peux pas le regrretter!
Utilises-tu VS 2005 ou 2008 ?

SuperBouly
mardi 13 janvier 2009 à 12:14:56 | Re : Postbackurl et ascx

casa51

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.

je teste ta methode.
mardi 13 janvier 2009 à 12:19:25 | Re : Postbackurl et ascx

ggtry

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
mardi 13 janvier 2009 à 15:30:48 | Re : Postbackurl et ascx

casa51

encore moi ouinnnnnnnnnn
voila j'essaye comme toi je prend 2 page vierge et un webusercontrol (code behind vs2008)

default3.aspx
default4.aspx
WebUserControl.ascx

fichier WebUserControl.ascx :

------------------------------------------
<%

@ControlLanguage="VB"AutoEventWireup="false"CodeFile="WebUserControl.ascx.vb"Inherits="test_postback_WebUserControl" %>

<asp:TextBoxID="TextBox1"runat="server"></asp:TextBox>

<asp:ButtonID="Button1"runat="server"Text="Button"PostBackUrl="~/test-postback/Default4.aspx"/>
-------------------------------------------

code behinfd rien

fichier default3.aspx :
-------------------------------------------

<%

@PageLanguage="VB"AutoEventWireup="false"CodeFile="Default3.aspx.vb"Inherits="test_postback_Default3" %>

<%

@RegisterSrc="WebUserControl.ascx"TagName="WebUserControl"TagPrefix="uc1" %>

<!

DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<

htmlxmlns="http://www.w3.org/1999/xhtml">

<

headrunat="server">

<title>Page sans titre</title>

</

head>

<

body>

<formid="form1"runat="server">

<div>

<uc1:WebUserControlid="WebUserControl1"runat="server"/>

</div>

</form>

</

body>

</

html>
--------------------------------------------------------------------
code behind rien


fichier default4.aspx :
--------------------------------------------------------------------

<%

@PageLanguage="VB"AutoEventWireup="false"CodeFile="Default4.aspx.vb"Inherits="test_postback_Default4" %>

<%

@RegisterSrc="WebUserControl.ascx"TagName="WebUserControl"TagPrefix="uc1" %>

<!

DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<

htmlxmlns="http://www.w3.org/1999/xhtml">
<
headrunat="server">
<title>Page sans titre</title>
</
head>
<
body>
<formid="form1"runat="server">
<div>
<uc1:WebUserControlid="WebUserControl1"runat="server"/>
<asp:LabelID="Label1"runat="server"Text="Label"></asp:Label>
</div>
</form>
</
body>
</
html>
---------------------------------------------------------------------------------
codebehind

----------------------------------------------------------------------------------

Imports

System

Imports

System.Data

Imports

System.Configuration

Imports

System.Collections

Imports

System.Web

Imports

System.Web.Security

Imports

System.Web.UI

Imports

System.Web.UI.WebControls

Imports

System.Web.UI.WebControls.WebParts

Imports

System.Web.UI.UserControl

Imports

System.Web.UI.HtmlControls

Imports

System.Data.OleDb

Imports

System.Data.SqlClient

Partial

Class test_postback_Default4

Inherits System.Web.UI.Page

PrivateSub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs)

IfNot Page.PreviousPage IsNothingThen

Dim uc As WebUserControl = CType(Page.PreviousPage.FindControl("WebUserControl1"), WebUserControl)

Dim tb As TextBox = CType(uc.FindControl("TextBox1"), TextBox)

Label1.Text = tb.Text

EndIf

EndSub

End

Class
-------------------------------------------------------------------------------------

quand je valide mon formulaire ascx dans page3 j'arrive sur page4.aspx et la
erreur : BC30002: Type 'WebUserControl' non défini.

il ne reconnais pas la commande webusercontrol

je vais y arriver  je suis un peux lent mais bon.....
merci de votre aide


1 2

Cette discussion est classée dans : page, valeur, ascx, aspx, page2


Répondre à ce message

Sujets en rapport avec ce message

comment reutiliser un controle utilisateur asp.net [ par bastien30 ] Bonjour,j'ai créé une page index.aspx qui fait référence à un controle utilisateur nommé header.ascx.Ce dernier contient une image monimage.jpg j'ai c Cross PostBack : quelques questions [ par mezthium ] Bonjour,Je debute dans l'ASP.NET et je galère un peu avec le passage de paramètres en méthode POST grâce au Cross-postback.Deja, J'ai essayé un exempl Récupérer valeur de champ d'une page aspx vers ascx [ par mathos33 ] BonjourJ'utilise une page grille.aspx dans laquelle j'appelle une page grille.ascx. L'objectif est de créer une grille de programmes répartie par jour Problème page Load asp.net [ par bies ] Bonjour, j'ai un souci depuis hier et je n'ai toujours pas trouvé de solution. N'hésitez pas pour me donner des pistes. Je voudrais faire un passage Modifier ID asp dans une class [ par Nitrakz ] Bonjour, Tout est dans le titre, je vous explique plus en détail: Dans ma page aspx, je dispose de control par exemple: [b]"test.aspx"[/b] [code=asp Ne pas pouvoir revenir sur une page précédente en aspx [ par marcgiraud ] Bonjour, Je suis actuellement à la recherche d'un code me permettant aprés validation des données d'une page de ne pas pouvoir revenir sur celle-ci a Interception d'une requête HTTP par une page ASPX [ par tirthor ] Bonjour, voici mon problème: J'ai une application Win32, utilisant Wininet pour transférer un fichier (doc) par http. J'ai la confirmation via Fiddle Gestion Popup ASP.NET + JS [ par petio26 ] bonjour, je développe une application web en asp, j'ai un problème dans la gestion de ma popup, je m'explique j'ai une page Recapitulatif.aspx, qui c UpdatePanel et callback d'une chart s'arretent de fonctionner apres l'execution d'un code javascript [ par waelyh ] Bonjour tout le monde, je suis entrain d'appeler une fenêtre popup a partir d'une page aspx appelé "page1.aspx" en utilisant le code C# suivant: [co récupérer la valeur d'un contrôle [ par mezianiomar ] Bonjour, Comment récupérer par exemple le texte d'un "TextBoxe" affiché dynamiquement sur une page. NB: le texte est saisie après que la page est char


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,716 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales