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

Passage des paramètres entre les webparts

3 réponses
Avatar
Thomas
Bonjour,

J'ai un problème suivant et depuis un moment je ne trouve pas de solution
pour le resoudre. Sur une page j'ai 2 webparts, la première est un filtre
(avec des DropDownLists) et la deuxième contient une SPGridView qui affiche
de données chargées à partir de la base SQL.
Le chargement de données dans la 2 webpart se fait de la manière suivante:

1. Dans CreateChildControls je crée un ObjectDataSource avec une methode
Select. Je le lie ensuite à SPGridView.

Jusqu'à là tout fonctionne correctement. Maintenant je voudrais que les
paramètres choisis dans le filtre de la première webpart filtre les données
dans la 2ème WebPart. Pour cela j'ai crée sur la première webpart une
methode connexion provider et sur la deuxième une methode connexion
consumer. Le passage de paramètres se fait correctement dans la mesureoù
j'arrive dans l'évenement onPreRender à afficher les paramètres reçus de la
première webpart. Le problème est le suivant. J'ai l'impression que la
SelectMethod du ObjectDataSource est juste exécutée une fois à la liasion de
ObjectDataSource avec le SPGridView. Quand je séléctionne des valeurs dans
la première WebPart ça n'a aucune influence sur la liste affichée dans la
deuxième webpart car la liasion de données avec object datasource est faite
est la réquète avec les nouveaux paramètres n'est pas relancée. Comment
résoudre ce problème ?

Merci d'avance,

Thomas

3 réponses

Avatar
Renaud Comte aka TheMit [MVP]
Bonjour

Problème classique de suivie des evenements :)

Mais rien de grave
le soucis vient que l'element databind survient plus tot que PreRender.
Donc votre gridview se charge avec l'object datasource que vous lui avez
donné







Le prerender est donc trop tard.

il suffit donc de changer 2,3 points

* ne pas utiliser le datasourceId de votre gridview qui lit le control avec
l'objectdatasource
* utiliser directement datasource et databind dans le prerender

et voila :)

--
Renaud Comte [MVP] aka TheMit
Blog Fr : http://blogs.developpeur.org/themit/
Blog Us : http://blog.spsclerics.com/

"Thomas" wrote in message
news:
Bonjour,

J'ai un problème suivant et depuis un moment je ne trouve pas de solution
pour le resoudre. Sur une page j'ai 2 webparts, la première est un filtre
(avec des DropDownLists) et la deuxième contient une SPGridView qui
affiche de données chargées à partir de la base SQL.
Le chargement de données dans la 2 webpart se fait de la manière suivante:

1. Dans CreateChildControls je crée un ObjectDataSource avec une methode
Select. Je le lie ensuite à SPGridView.

Jusqu'à là tout fonctionne correctement. Maintenant je voudrais que les
paramètres choisis dans le filtre de la première webpart filtre les
données dans la 2ème WebPart. Pour cela j'ai crée sur la première webpart
une methode connexion provider et sur la deuxième une methode connexion
consumer. Le passage de paramètres se fait correctement dans la mesureoù
j'arrive dans l'évenement onPreRender à afficher les paramètres reçus de
la première webpart. Le problème est le suivant. J'ai l'impression que la
SelectMethod du ObjectDataSource est juste exécutée une fois à la liasion
de ObjectDataSource avec le SPGridView. Quand je séléctionne des valeurs
dans la première WebPart ça n'a aucune influence sur la liste affichée
dans la deuxième webpart car la liasion de données avec object datasource
est faite est la réquète avec les nouveaux paramètres n'est pas relancée.
Comment résoudre ce problème ?

Merci d'avance,

Thomas


Avatar
Thomas
Bonjour,

Merci pour voter réponse. En fait j'utilise DatasourceId car cela permet de
beneficier du tri et des filtres automatiques qu'offre ObjectDataSource. Si
j'utilise le DataSource + Databind() je perds cette possibilité et dois
gerer tout manuellement. Donc d'après ce que je comprends il n'y a pas de
solution qui permet de le faire facilement ?

Merci,

Thomas


"Renaud Comte aka TheMit [MVP]" a écrit dans le message
de news:
Bonjour

Problème classique de suivie des evenements :)

Mais rien de grave
le soucis vient que l'element databind survient plus tot que PreRender.
Donc votre gridview se charge avec l'object datasource que vous lui
avez donné







Le prerender est donc trop tard.

il suffit donc de changer 2,3 points

* ne pas utiliser le datasourceId de votre gridview qui lit le control
avec l'objectdatasource
* utiliser directement datasource et databind dans le prerender

et voila :)

--
Renaud Comte [MVP] aka TheMit
Blog Fr : http://blogs.developpeur.org/themit/
Blog Us : http://blog.spsclerics.com/

"Thomas" wrote in message
news:
Bonjour,

J'ai un problème suivant et depuis un moment je ne trouve pas de solution
pour le resoudre. Sur une page j'ai 2 webparts, la première est un filtre
(avec des DropDownLists) et la deuxième contient une SPGridView qui
affiche de données chargées à partir de la base SQL.
Le chargement de données dans la 2 webpart se fait de la manière
suivante:

1. Dans CreateChildControls je crée un ObjectDataSource avec une methode
Select. Je le lie ensuite à SPGridView.

Jusqu'à là tout fonctionne correctement. Maintenant je voudrais que les
paramètres choisis dans le filtre de la première webpart filtre les
données dans la 2ème WebPart. Pour cela j'ai crée sur la première webpart
une methode connexion provider et sur la deuxième une methode connexion
consumer. Le passage de paramètres se fait correctement dans la mesureoù
j'arrive dans l'évenement onPreRender à afficher les paramètres reçus de
la première webpart. Le problème est le suivant. J'ai l'impression que la
SelectMethod du ObjectDataSource est juste exécutée une fois à la liasion
de ObjectDataSource avec le SPGridView. Quand je séléctionne des valeurs
dans la première WebPart ça n'a aucune influence sur la liste affichée
dans la deuxième webpart car la liasion de données avec object datasource
est faite est la réquète avec les nouveaux paramètres n'est pas relancée.
Comment résoudre ce problème ?

Merci d'avance,

Thomas





Avatar
Renaud Comte aka TheMit [MVP]
A voir si reaffecter le datasource au moment du prerender , limite a forcer
un databind peut contourner le probléme

--
Renaud Comte [MVP] aka TheMit
Blog Fr : http://blogs.developpeur.org/themit/
Blog Us : http://blog.spsclerics.com/

"Thomas" wrote in message
news:
Bonjour,

Merci pour voter réponse. En fait j'utilise DatasourceId car cela permet
de beneficier du tri et des filtres automatiques qu'offre
ObjectDataSource. Si j'utilise le DataSource + Databind() je perds cette
possibilité et dois gerer tout manuellement. Donc d'après ce que je
comprends il n'y a pas de solution qui permet de le faire facilement ?

Merci,

Thomas


"Renaud Comte aka TheMit [MVP]" a écrit dans le
message de news:
Bonjour

Problème classique de suivie des evenements :)

Mais rien de grave
le soucis vient que l'element databind survient plus tot que
PreRender. Donc votre gridview se charge avec l'object datasource que
vous lui avez donné







Le prerender est donc trop tard.

il suffit donc de changer 2,3 points

* ne pas utiliser le datasourceId de votre gridview qui lit le control
avec l'objectdatasource
* utiliser directement datasource et databind dans le prerender

et voila :)

--
Renaud Comte [MVP] aka TheMit
Blog Fr : http://blogs.developpeur.org/themit/
Blog Us : http://blog.spsclerics.com/

"Thomas" wrote in message
news:
Bonjour,

J'ai un problème suivant et depuis un moment je ne trouve pas de
solution pour le resoudre. Sur une page j'ai 2 webparts, la première est
un filtre (avec des DropDownLists) et la deuxième contient une
SPGridView qui affiche de données chargées à partir de la base SQL.
Le chargement de données dans la 2 webpart se fait de la manière
suivante:

1. Dans CreateChildControls je crée un ObjectDataSource avec une methode
Select. Je le lie ensuite à SPGridView.

Jusqu'à là tout fonctionne correctement. Maintenant je voudrais que les
paramètres choisis dans le filtre de la première webpart filtre les
données dans la 2ème WebPart. Pour cela j'ai crée sur la première
webpart une methode connexion provider et sur la deuxième une methode
connexion consumer. Le passage de paramètres se fait correctement dans
la mesureoù j'arrive dans l'évenement onPreRender à afficher les
paramètres reçus de la première webpart. Le problème est le suivant.
J'ai l'impression que la SelectMethod du ObjectDataSource est juste
exécutée une fois à la liasion de ObjectDataSource avec le SPGridView.
Quand je séléctionne des valeurs dans la première WebPart ça n'a aucune
influence sur la liste affichée dans la deuxième webpart car la liasion
de données avec object datasource est faite est la réquète avec les
nouveaux paramètres n'est pas relancée. Comment résoudre ce problème ?

Merci d'avance,

Thomas