Obtention de données à partir de différente page asp

Résolu
cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016 - 28 mars 2009 à 17:30
cs_scoufild Messages postés 61 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 13 avril 2011 - 31 mars 2009 à 18:05
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

cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016
29 mars 2009 à 10:05
est ce que le headerrow est bien le premier enregistrement ou bien je me trompe ???
3
ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
29 mars 2009 à 01:37
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
0
ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
29 mars 2009 à 01:49
mais en fait, pour ce que tu veux faire, il vaut mieux passer par un querystring.

GGtry
0
cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016
29 mars 2009 à 09:30
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
0

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

Posez votre question
cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016
29 mars 2009 à 09:33
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
0
ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
29 mars 2009 à 16:26
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
0
cs_scoufild Messages postés 61 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 13 avril 2011
31 mars 2009 à 18:05
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
0
Rejoignez-nous