Obtention de données à partir de différente page asp [Résolu]

Signaler
Messages postés
109
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
4 février 2016
-
Messages postés
63
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
13 avril 2011
-
bonjour je travaille sur une application web j'utilise asp.net , vb.net et sql server 2005
j'ai un gridview dans une page1.aspx avec un bouton select dedans.
et j ai un bouton button1 dans la page1 où j ai ecrit dans le code de l'événement Server.Transfer("page2.aspx")

et dans la page2.aspx j ai fai un detailview,mais il m affiche les détails des données du premier enregistrement et ce que je veux c'est qu'il m'affiche l'enregistrement selectionné dans le gridview.
Merci

7 réponses

Messages postés
109
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
4 février 2016

est ce que le headerrow est bien le premier enregistrement ou bien je me trompe ???
Messages postés
417
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
21 juillet 2010
1
Bonsoir,

Ca dépend, mais si c'est un button, tu n'as pas besoin d'un server.transfer (cela dit je dis cela sans savoir exactement ce que tu fais).
Il suffit d'utiliser le postbackurl de ton button, et tu pourras récupérer sur ta page2 les contrôles de ta page1 avec page.previouspage.findcontrol etc.

GGtry
Messages postés
417
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
21 juillet 2010
1
mais en fait, pour ce que tu veux faire, il vaut mieux passer par un querystring.

GGtry
Messages postés
109
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
4 février 2016

Rebonjour
Merci pour l'info sur page.previous.findcontrol je la connaissai (puisque je sui debutant avec asp.net)


j ai écrit le code suivant








Protected



Sub
Page_Load(

ByVal
sender

As



Object
,

ByVal
e

As
System.EventArgs)

Handles



Me
.Load


If



Not
Page.PreviousPage

Is



Nothing



Then

Dim
dv

As
DetailsView
dv.HeaderRow=

CType
(PreviousPage.FindControl(

"GridView1.SelectedRow"
), GridView)


            If



Not
dv

Is



Nothing



Then

             DetailsView1.GridLines = dv.GridLines


             End



If






End



If






End



Sub

je sais pas si ce que j'ai écrit a vraiment un sens .. mais lors de la compilation un msg de 'BC30526: Property 'HeaderRow' is 'ReadOnly'. s'affiche
comment je pourrai modifer cette propriété ??? et ai je d'autre erreur ou bieb les affectation sont correctes ??
 NB : Pourriez vous etre plus concret à propos du querystring




 




Merci beacoup
Messages postés
109
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
4 février 2016

Protected






Sub
Page_Load(

ByVal
sender

As



Object
,

ByVal
e

As
System.EventArgs)

Handles



Me
.Load


If



Not
Page.PreviousPage

Is



Nothing



Then






Dim
dv

As
DetailsViewdv.HeaderRow =


CType
(PreviousPage.FindControl(

"GridView1.SelectedRow"
), GridView)


If



Not
dv

Is



Nothing



Then

DetailsView1.HeaderRow = dv.HeaderRow







End



If






End



If






End



Sub

desolé j ai fai une erreur lors de la copie : headerRow et non pas Gridlines
Merci
Messages postés
417
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
21 juillet 2010
1
Bonjour,


Oui, comme ça tu dois utiliser server.transfer (et en fait je ne suis pas sûr qu'il soit possible de procéder autrement, du fait que le postbackurl va empêcher que le changement de selectedindex soit considéré).


Pour le headerrow : non, il ne s'agit pas du premier enregistrement, mais de la ligne de titres de tes colonnes. Mais si tu ne fais pas appel à une source de données dans ta page2, tu n'as pas besoin d'un detailsview (sinon, si tu veux faire appel à une source de données dans ta page2, utilise un querystring, qui passera la donnée pertinente dans l'url).

Pour récupérer les données de la ligne, tu peux utiliser gridview.selectedrows.cells(n) où "n" est le numéro de ta colonne (en partant de 0).
Par exemple, en remplissant un label avec le texte de la première colonne de la ligne sélectionnée :

Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        If Not Page.PreviousPage Is Nothing Then
            Dim gd As GridView = Page.PreviousPage.FindControl("GridView1")
            Dim s As String = gd.SelectedRow.Cells(0).Text
            Label1.Text = s
        End If
    End Sub

Sinon,

GGtry
Messages postés
63
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
13 avril 2011

bonjour,

oui tu peux développez une fonction java scripte qui permet de sauvegarder les enregistrements que tu souhaité et tu peux  appelez a prés .

Bien
cordialement
Scoufild