none
gridview RRS feed

  • Question

  • J'ai implémenté une gridview qui est alimentée par un objectdatasource.

    Cette gridview  présente un champ "détails" qui me permet d'aller sur une autre page présentant les infos détaillées de la row sélectionnée.  De  la page fille, j'ai prévu un  bouton retour "vers liste", ce bouton fonctionne.

    Le seul souci, c'est que lorsque je fais initialement un tri sur la gridview, que je clique sur le lien "détails"  et que je reviens, je ne retrouve pas la gridview triée. Elle se  remet dans l'état  non trié. C'est gênant quand j'ai  des dizaines de lignes  dans la gridview.

    Merci de me donner une technique qui me permet de retrouver la gridview dans son  état trié après un retour de la page fille vers la page mère.

    mardi 15 février 2011 15:59

Réponses

  • Utilisation de viewstate :

    Avant de diriger vers la page details view : ViewState["GVTriees"] = GridView.dataSource;

    Et puis lorsque, tu re bind ta GridView avec ViewState["GVTriees"] ( GridView.dataSource = (dataTable) ViewState["GVTriees"]; GridView.databind())

     

    • Proposé comme réponse Alex Petrescu mardi 22 février 2011 10:07
    • Marqué comme réponse Alex Petrescu jeudi 24 février 2011 09:26
    lundi 21 février 2011 16:28

Toutes les réponses

  • J'ai eu 3 pistes pour toi et c à toi de choisir :

    1. tu trie ta datasource avant de faire le bind avec le gridview.

    2. lors de retour vers la page parent(o`u t'as la gridview ), tu fais le trie dans ta page_Load. C LE PLUS LOGIQUE, à mon avis

    3. tu enregistre ta gridview triée dans un viewstate : à ne pas utiliser, si t'as bcp des données !!!!

     

    mercredi 16 février 2011 10:14
  • Bonjour,

    L'une des contraintes c'est que je veux utiliser la fonctionnalité "allowsorting" (entre nous je ne veux pas écrire du code je suis fatigué... je n'ai pas assez "d'énergie" pour refaire  le tri  "manuellement") et il me semble que cette fonctionnalité  fait un tri déjà dans la source de données.

     

     

    J'ai placé  le code suivant dans le gesionnaire d'événement monGridwiew_sorted  ()  { monGridView.databind();

    }

    mais ça ne fonctionne pas.

    Pendant que j'écris  j'ai l'idée d'aller chercher dans les gestionnaires d'événement du datasource même pour voir si on peut "faire qlq chose à ce niveau là"... 

    La piste 3 m'intéresse, je te serai très reconnaissant si je pouvais avoir un squelette de code, un canevas.

    L'idéal pour moi, compte tenu des délais qui me sont imposés et des retards qui se profilent à l'horizon, c'est de trouver la piste la moins coûteuse (en termes de temps)

    Merci pour ta réaction

    vendredi 18 février 2011 11:41
  • Utilisation de viewstate :

    Avant de diriger vers la page details view : ViewState["GVTriees"] = GridView.dataSource;

    Et puis lorsque, tu re bind ta GridView avec ViewState["GVTriees"] ( GridView.dataSource = (dataTable) ViewState["GVTriees"]; GridView.databind())

     

    • Proposé comme réponse Alex Petrescu mardi 22 février 2011 10:07
    • Marqué comme réponse Alex Petrescu jeudi 24 février 2011 09:26
    lundi 21 février 2011 16:28
  • Bonjour,

     

    Merci @aguetat  pour ces informations.

    Verbeyst, si vous avez besoin de plusieurs informations, n’hésitez pas de nous contacter.

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur MSDN !

    Windows Phone 7

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, SharePoint, WPF

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     

     


    Suivez MSDN sur Twitter 

    mardi 22 février 2011 10:08