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 :

Changer la source de donnée d'un gridview


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2009
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 53
    Par défaut Changer la source de donnée d'un gridview
    Bonjour,

    J'aimerais savoir comment faire pour changer la source d'un gridview lié a un sqldatasource et garder la capacité de faire des tris et sélections.

    Mon gridview se charge une première fois, ici je peut faire des tries sur les colonnes (grace a AllowSorting="True" ) ou en sélectionner une.

    On peut après faire une recherche sur les éléments du gridview ( comme avoir qu'un certain numéreau, ... par exemple)
    après avoir remplie les champs de recherche je modifie la commend sql du sqlDataSource (pour rajouter les restriction de recherche) puis je fait un databind.
    Les éléments s'affiche bien mais si je fait un tri sur une colonnes ou que je veut en sélectionne une ça me remet l'ancien gridview ( et ça selectionne l'ancienne ligne)
    Donc je ne sais pas comment faire , ou si vous avais une autre façon de faire pour restreindre les ligne dans le gridview je suis preneur

    Voici le code behind :
    Code vb : 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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
     
            If Session("profil") <> "demandeur" Then
                Response.Redirect("~/default.aspx")
            Else
                   Dim sql as String = "select d.id iddem,u.nom gestionnaire, r.etat, to_char(r.datereal,'dd/mm/yyyy') datereal, d.sommaire  " & _
            "from demande d, realiser r, utilisateur u " & _
            "where(d.id = r.id_demande And u.id = d.id_utilisateur) " & _
            "and lower(r.etat) not like 'cloturer' " & _
            "and r.datereal = (select max(datereal) from realiser where id_demande = d.id)  " & _
            "and d.id in (select id_demande from realiser where id_utilisateur = " + Session("id") + ") "
     
             listdem.SelectCommand = Session("sql")
             gv_dem.DataBind()
             End If
     
     End Sub
     
     Protected Sub bt_recherche_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bt_recherche.Click
     
            'Construction de la requete de recherche
            Dim sql as String = "select d.id iddem,u.nom gestionnaire, r.etat, to_char(r.datereal,'dd/mm/yyyy') datereal, d.sommaire  " & _
        "from demande d, realiser r, utilisateur u " & _
        "where(d.id = r.id_demande And u.id = d.id_utilisateur) " & _
        "and lower(r.etat) not like 'cloturer' " & _
        "and r.datereal = (select max(datereal) from realiser where id_demande = d.id)  " & _
        "and d.id in (select id_demande from realiser where id_utilisateur = " + Session("id") + ") "
            If tb_nom.Text <> "" Then
                sql  += "And LOWER(d.nom) like '%" + LCase(tb_nom.Text.ToString) + "%' "
            End If
            If tb_num.Text <> "" Then
                sql += "And d.id = " + tb_num.Text.ToString + " "
            End If
            If dd_dom.SelectedValue <> "0" Then
                sql  += "And d.id_domaine in (select id from domaine where id_surdomaine = " + dd_dom.SelectedValue.ToString + ") "
            End If
            If dd_quartier.SelectedValue <> "0" Then
                sql  += "And d.ID_QUARTIER = " + dd_quartier.SelectedValue.ToString + " "
            End If
            If tb_date.Text <> "" Then
                sql  += "And d.id in (select id_demande from realiser group by id_demande having to_char(MIN(datereal),'dd/mm/yyyy') like '" + tb_date.Text.ToString.ToString + "') "
            End If
            If dd_etat.SelectedValue <> "0" Then
                sql  += "And d.id in (select id_demande from realiser where etat like '" + dd_etat.SelectedItem.ToString + "') "
            End If
     
            listdem.SelectCommand = Session("sql")
            gv_dem.DataBind()
    End Sub



    Voila le code du gridview


    Code asp : 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
    23
    24
    25
    26
    27
    28
    29
     
    <asp:GridView ID="gv_dem" runat="server" AutoGenerateColumns="False" 
            DataSourceID="listdem" CellPadding=5 AllowPaging="True"
            AllowSorting="True" enableviewstate="False" DataKeyNames="iddem" >
            <Columns>
                <asp:BoundField DataField="iddem" HeaderText="Numéreau" ReadOnly="True" 
                    SortExpression="iddem" />
                <asp:BoundField DataField="ETAT" HeaderText="Etat" SortExpression="ETAT" />
                <asp:BoundField DataField="gestionnaire" HeaderText="Gestionnaire" 
                    SortExpression="gestionnaire" />
                <asp:BoundField DataField="SOMMAIRE" HeaderText="Nature de la demande" 
                    SortExpression="SOMMAIRE" />
                <asp:BoundField DataField="DATEREAL" HeaderText="Date" 
                    SortExpression="DATEREAL" />
                <asp:CommandField ButtonType=Image ShowSelectButton="True" HeaderText="Detail" SelectImageUrl="~/images/edit.png" /> 
            </Columns>
            <EmptyDataTemplate>
                Aucune demande n'a été selectionné
            </EmptyDataTemplate>
            <HeaderStyle CssClass="haut_tab" />
        <PagerStyle CssClass="bas_tab" />
        <RowStyle CssClass="ligne1"/>
        <AlternatingRowStyle CssClass="ligne2" />
        <PagerSettings Mode=Numeric />   
        </asp:GridView>
        <asp:SqlDataSource ID="listdem" runat="server" 
            ConnectionString="<%$ ConnectionStrings:ETRAV2connection %>" 
            ProviderName="<%$ ConnectionStrings:ETRAV2connection.ProviderName %>">
        </asp:SqlDataSource>

    Merci pour votre aide

  2. #2
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Bonjour,

    Ta requête et ton DataBind tu ne dois le faire que si ce n'est pas un PostBack.

  3. #3
    Membre averti
    Inscrit en
    Février 2009
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 53
    Par défaut
    oui je sais mais si je mes if not isPostBack ... quand je veut réorganisé les colonnes ( click sur l'entête ) je n'ai plus rien d'affiché dans mon gridview

Discussions similaires

  1. [XL-2007] Changer la source de données d'un graphique croisé dynamique
    Par Tibou(c) dans le forum Excel
    Réponses: 3
    Dernier message: 15/07/2014, 09h58
  2. Changer la source de données d'un état Crystal report
    Par othinakidev dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 17/06/2009, 13h59
  3. Changer la source de données d'un TCD
    Par mat75019 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/06/2009, 12h23
  4. Réponses: 1
    Dernier message: 06/12/2007, 17h23
  5. Changer la source de données d'une Connexion
    Par Harry dans le forum WinDev
    Réponses: 1
    Dernier message: 09/08/2007, 15h54

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