OVH Cloud OVH Cloud

Gridview et datasource dynamique

4 réponses
Avatar
Clark
Bonjour

Je pensais passer peu de temps sur le développement d'une page web en
asp net 2.0 mais là je sèche un peu. Sur cette page se trouve un
gridview bindé à une sqldatasource qui affiche le résultat d'une
colonne. Le tri, la pagination et la sélection sont activés. Jusque là
aucun problème.
Le hic, c'est que j'ai une dropdownlist qui affiche une liste de "vues"
disponibles. J'entends par là que l'utilisateur peut changer par la
dropdownlist la "selectcommand" de ma sqldatasource, y compris les
colonnes affichées. Le but est de pouvoir rajouter rapidement des vues
à cette page sans être obligé de développer une page par vue.
Bon, j'avais un bug qui n'apparaît plus ce matin, donc c'est déjà ça de
réglé.
A présent, quand je choisis une vue dans ma dropdownlist, mon gridview
m'affiche bien le résultat de la nouvelle requête. Le problème est que
si je veux trier ou utiliser la pagination, il effectue bien
l'opération demandée mais m'affiche à nouveau le résultat de la requête
d'origine.
J'espère être relativement compréhensible.

Merci

--
Clark

4 réponses

Avatar
Clark
Clark a écrit :
Bonjour

Je pensais passer peu de temps sur le développement d'une page web en asp net
2.0 mais là je sèche un peu. Sur cette page se trouve un gridview bindé à une
sqldatasource qui affiche le résultat d'une colonne. Le tri, la pagination et
la sélection sont activés. Jusque là aucun problème.
Le hic, c'est que j'ai une dropdownlist qui affiche une liste de "vues"
disponibles. J'entends par là que l'utilisateur peut changer par la
dropdownlist la "selectcommand" de ma sqldatasource, y compris les colonnes
affichées. Le but est de pouvoir rajouter rapidement des vues à cette page
sans être obligé de développer une page par vue.
Bon, j'avais un bug qui n'apparaît plus ce matin, donc c'est déjà ça de
réglé.
A présent, quand je choisis une vue dans ma dropdownlist, mon gridview
m'affiche bien le résultat de la nouvelle requête. Le problème est que si je
veux trier ou utiliser la pagination, il effectue bien l'opération demandée
mais m'affiche à nouveau le résultat de la requête d'origine.
J'espère être relativement compréhensible.

Merci



Bon j'ai bêtement fait ça :
protected void GridView2_Sorting(object sender, GridViewSortEventArgs
e)
{
this.dsGridView.SelectCommand = sqlVue;
}
protected void GridView2_PageIndexChanging(object sender,
GridViewPageEventArgs e)
{
this.dsGridView.SelectCommand = sqlVue;
}
et ça marche...
Bref je suis content car mon problème est résolu mais pas complètement
puisque je n'en connais pas la cause.
+

--
Clark
Avatar
Clark
Clark a couché sur son écran :
Clark a écrit :
Bonjour

Je pensais passer peu de temps sur le développement d'une page web en asp
net 2.0 mais là je sèche un peu. Sur cette page se trouve un gridview bindé
à une sqldatasource qui affiche le résultat d'une colonne. Le tri, la
pagination et la sélection sont activés. Jusque là aucun problème.
Le hic, c'est que j'ai une dropdownlist qui affiche une liste de "vues"
disponibles. J'entends par là que l'utilisateur peut changer par la
dropdownlist la "selectcommand" de ma sqldatasource, y compris les colonnes
affichées. Le but est de pouvoir rajouter rapidement des vues à cette page
sans être obligé de développer une page par vue.
Bon, j'avais un bug qui n'apparaît plus ce matin, donc c'est déjà ça de
réglé.
A présent, quand je choisis une vue dans ma dropdownlist, mon gridview
m'affiche bien le résultat de la nouvelle requête. Le problème est que si
je veux trier ou utiliser la pagination, il effectue bien l'opération
demandée mais m'affiche à nouveau le résultat de la requête d'origine.
J'espère être relativement compréhensible.

Merci



Bon j'ai bêtement fait ça :
protected void GridView2_Sorting(object sender, GridViewSortEventArgs e)
{
this.dsGridView.SelectCommand = sqlVue;
}
protected void GridView2_PageIndexChanging(object sender,
GridViewPageEventArgs e)
{
this.dsGridView.SelectCommand = sqlVue;
}
et ça marche...
Bref je suis content car mon problème est résolu mais pas complètement
puisque je n'en connais pas la cause.
+



Une question tout de même. Est-il possible de gérer le format des
données affichées? J'entends par là que j'ai des colonnes datetime et
qu'avec l'autogénération je me retrouve avec des valeurs du type
09/05/2006 00:00:00
Pas top donc, il faudrait que je puisse modifier ça mais je ne vois pas
trop comment?

--
Clark
Avatar
alan
Et bien tu as deux solutions.
La première constiste à formater ta chaine vie ta requete SQL : SELECT
Convert(string, TonChampsDate, 113) AS TonChampsDate FROM TaTable
La deuxieme (qui ne fonctionne pas en cas d'autogénération de colonne)
consiste à définir la propriété StringFormat de ta colonne...

"Clark" a écrit :

Clark a couché sur son écran :
> Clark a écrit :
>> Bonjour
>>
>> Je pensais passer peu de temps sur le développement d'une page web en asp
>> net 2.0 mais là je sèche un peu. Sur cette page se trouve un gridview bindé
>> à une sqldatasource qui affiche le résultat d'une colonne. Le tri, la
>> pagination et la sélection sont activés. Jusque là aucun problème.
>> Le hic, c'est que j'ai une dropdownlist qui affiche une liste de "vues"
>> disponibles. J'entends par là que l'utilisateur peut changer par la
>> dropdownlist la "selectcommand" de ma sqldatasource, y compris les colonnes
>> affichées. Le but est de pouvoir rajouter rapidement des vues à cette page
>> sans être obligé de développer une page par vue.
>> Bon, j'avais un bug qui n'apparaît plus ce matin, donc c'est déjà ça de
>> réglé.
>> A présent, quand je choisis une vue dans ma dropdownlist, mon gridview
>> m'affiche bien le résultat de la nouvelle requête. Le problème est que si
>> je veux trier ou utiliser la pagination, il effectue bien l'opération
>> demandée mais m'affiche à nouveau le résultat de la requête d'origine.
>> J'espère être relativement compréhensible.
>>
>> Merci
>
> Bon j'ai bêtement fait ça :
> protected void GridView2_Sorting(object sender, GridViewSortEventArgs e)
> {
> this.dsGridView.SelectCommand = sqlVue;
> }
> protected void GridView2_PageIndexChanging(object sender,
> GridViewPageEventArgs e)
> {
> this.dsGridView.SelectCommand = sqlVue;
> }
> et ça marche...
> Bref je suis content car mon problème est résolu mais pas complètement
> puisque je n'en connais pas la cause.
> +

Une question tout de même. Est-il possible de gérer le format des
données affichées? J'entends par là que j'ai des colonnes datetime et
qu'avec l'autogénération je me retrouve avec des valeurs du type
09/05/2006 00:00:00
Pas top donc, il faudrait que je puisse modifier ça mais je ne vois pas
trop comment?

--
Clark





Avatar
Clark
Bonjour et merci de ta réponse. J'ai en fait fait un peu différement
car les champs de ma requête sont stockés dans une table de ma base et
j'ai donc rajouté un champ pour le type de donnée que je récupère au
moment de la génération du gridview et que je passe au stringformat
+
Il se trouve que alan a formulé :
Et bien tu as deux solutions.
La première constiste à formater ta chaine vie ta requete SQL : SELECT
Convert(string, TonChampsDate, 113) AS TonChampsDate FROM TaTable
La deuxieme (qui ne fonctionne pas en cas d'autogénération de colonne)
consiste à définir la propriété StringFormat de ta colonne...

"Clark" a écrit :

Clark a couché sur son écran :
Clark a écrit :
Bonjour

Je pensais passer peu de temps sur le développement d'une page web en asp
net 2.0 mais là je sèche un peu. Sur cette page se trouve un gridview
bindé à une sqldatasource qui affiche le résultat d'une colonne. Le tri,
la pagination et la sélection sont activés. Jusque là aucun problème.
Le hic, c'est que j'ai une dropdownlist qui affiche une liste de "vues"
disponibles. J'entends par là que l'utilisateur peut changer par la
dropdownlist la "selectcommand" de ma sqldatasource, y compris les
colonnes affichées. Le but est de pouvoir rajouter rapidement des vues à
cette page sans être obligé de développer une page par vue.
Bon, j'avais un bug qui n'apparaît plus ce matin, donc c'est déjà ça de
réglé.
A présent, quand je choisis une vue dans ma dropdownlist, mon gridview
m'affiche bien le résultat de la nouvelle requête. Le problème est que si
je veux trier ou utiliser la pagination, il effectue bien l'opération
demandée mais m'affiche à nouveau le résultat de la requête d'origine.
J'espère être relativement compréhensible.

Merci



Bon j'ai bêtement fait ça :
protected void GridView2_Sorting(object sender, GridViewSortEventArgs e)
{
this.dsGridView.SelectCommand = sqlVue;
}
protected void GridView2_PageIndexChanging(object sender,
GridViewPageEventArgs e)
{
this.dsGridView.SelectCommand = sqlVue;
}
et ça marche...
Bref je suis content car mon problème est résolu mais pas complètement
puisque je n'en connais pas la cause.
+



Une question tout de même. Est-il possible de gérer le format des
données affichées? J'entends par là que j'ai des colonnes datetime et
qu'avec l'autogénération je me retrouve avec des valeurs du type
09/05/2006 00:00:00
Pas top donc, il faudrait que je puisse modifier ça mais je ne vois pas
trop comment?

--
Clark










--
Clark