IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Problème au triage d'un gridView


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Par défaut Problème au triage d'un gridView
    Situation :
    J'ai un gridView qui se peuple dans CreateFormat(), appelée dans le Page_Load.
    Dans CreateFormat, j'appelle Header_Change(), qui sert à ajouter des contrôles Label dans l'en-tête de 4 colonnes du gridView.
    J'ai un événement OnSorted pour le gridView qui rappelle CreateFormat() pour recréer le gridView.

    Problème :
    Lorsque je tri m'importe quel colonne du gridView, les contrôles Label précédemment placés dans l'en-tête des colonnes, disparaissent.
    Pourtant, en faisant des test, j'ai pu voir qu'il y avait toujours 2 contrôles dans l'en-tête, mais il n'y a que l'hyperlien, par défaut lorsque nous utilisons AllowSorting, de visible.

    Voici mon gridView :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <asp:GridView
        ID="ux_DataFormat" CssClass="BorderStyle" runat="server"
        DataSourceID="ux_srcFormat" AllowSorting="true" AutoGenerateColumns="False"
        DataKeyNames="" CellPadding="3" Width="80%"
        onRowCommand="ux_DataFormat_RowCommand" OnSorted="ux_DataFormat_Sorted">
    Voici mon code dans Page_Load :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    protected void Page_Load(object sender, EventArgs e)
    {        
        InitConnection("LassondeDev");
        myConnexionString = myConn.ConnectionString;
     
        if (String.IsNullOrEmpty(Convert.ToString(ViewState["systemeUnite"])))
        {
            ViewState["systemeUnite"] = "International";
            CreateFormat();
        }
    }
    Voici mon code dans CreateFormat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    private void CreateFormat()
    {
        string sCritere = FiltreCritere();
        string sQuery = "";
     
        if (Convert.ToString(ViewState["systemeUnite"]) == "International")
        {
            sQuery = "...";
        }
        else
        {
            sQuery = "...";
        }
     
        ux_srcFormat.ConnectionString = myConn.ConnectionString;
        ux_srcFormat.SelectCommand = sQuery;
        ux_DataFormat.DataBind();
     
        BoutonSystem_Change();
     
        Header_Change();
    }
    Voici mon code lors du triage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    protected void ux_DataFormat_Sorted(object sender, EventArgs e)
    {
        CreateFormat();
    }
    Merci d'avance pour vos suggestions

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    581
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 581
    Par défaut
    ce ne serait pas mieux de mettre if(!isPostback) au lieu de jouer avec un ViewState ? (Dans ton Page_Load)

    C'est normal que ta fonction de tri ne fasse rien ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Par défaut
    La condition dans le page_load joue le rôle de !IsPostBack, j'ai tout simplement voulu faire deux choses en une. C'est un peu tiré par les cheveux, mais ça marche.

    En triant le gridView, la page se reload. Commence par entrer dans le page_load(sans passer dans la condition, car ViewState["systemeUnite"] a été initialisé) puis dans l'événement ux_DataFormat_Sorted qui appelle CreateFormat qui rentre dans ma fonction de tri.

Discussions similaires

  1. Problème d'accent dans une GridView
    Par harry25 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 02/09/2009, 14h40
  2. Problème d'édition dans un GridView
    Par ecthelion77 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 15/10/2007, 16h44
  3. Problème count lignes d'un gridview
    Par Prodige2020 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 30/08/2007, 10h08
  4. Problème de pagination avec un GridView
    Par Perceuse-Killer dans le forum ASP.NET
    Réponses: 2
    Dernier message: 07/02/2007, 13h30
  5. [VB.NET] Problème de tri sur Datagrid/gridview multilingue
    Par crimsonPhantom dans le forum ASP.NET
    Réponses: 4
    Dernier message: 16/03/2006, 22h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo