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 :

GridView & WHERE clause avec une ddl - problèmes...


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 22
    Points : 19
    Points
    19
    Par défaut GridView & WHERE clause avec une ddl - problèmes...
    Bonjour,
    J'ai mis en place un gridview avec une where clause, ainsi qu'une DDL afin de filtrer la requête.
    VWD me crée ma requête de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    
    "SELECT [nom], [prenom], [nom_Institution], [UserName], [Code_Pays] 
    FROM [Contacts] WHERE ([id_Pays] = ?)"
    
    Je veux aussi permettre la désactivation de ce filtre, en sélectionnant "None" dans la DDL.
    Mais je ne parviens pas à le faire.
    Que dois je passer comme valeur (et mettre comme valeur par défaut à cet écran) pour qu'il me sélectionne toute la table ?

    La base de donnée est une DB Access et je crains que ça ne façilite pas la tâche...

    Voici le code complet :
    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
    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
    51
    52
    53
    54
    55
    56
    57
    58
    <asp:DropDownList ID="ddlp" Width="125" Visible=true
    AutoPostBack="true" runat="server" Font-Size="XX-Small">
    </asp:DropDownList>
    </td></tr>
    </table> 
    <asp:AccessDataSource ID="AccessDataSource1" DataFile="~/App_Data/ASPNetDB.mdb"
    
    SelectCommand=
    "SELECT [nom], [prenom], [nom_Institution], [UserName], [Code_Pays] 
    FROM [Contacts] WHERE ([id_Pays] = ?)"
    
    runat="server"> 
    <SelectParameters>
    <asp:ControlParameter
    ControlID="ddlp"
    DefaultValue="%"
    Name="id_Pays"
    PropertyName="SelectedValue"
    />
    </SelectParameters>
    </asp:AccessDataSource>
    <asp:GridView
    ID="GridView1"
     
    datasourceid="AccessDataSource1"
    AutoGenerateColumns="False"
    runat="server"
    AllowSorting="True"
    AllowPaging="True"
    PageSize="20"
    Font-Names="Arial"
    GridLines="None"
    PagerStyle-HorizontalAlign="Center">
    <Columns> 
    <asp:BoundField 
    DataField="nom" 
    HeaderText="nom" 
    SortExpression="nom"/>
    <asp:BoundField 
    DataField="prenom" 
    HeaderText="prenom" 
    SortExpression="prenom"/>
    <asp:BoundField 
    DataField="nom_Institution" 
    HeaderText="nom_Institution" 
    SortExpression="nom_Institution"/>
    <asp:BoundField 
    DataField="UserName" 
    HeaderText="UserName" 
    SortExpression="UserName"/>
    <asp:BoundField 
    DataField="Code_Pays" 
    HeaderText="Code_Pays" SortExpression="Code_Pays"/>
    </Columns> 
    <PagerStyle HorizontalAlign="Center"/>
    </asp:GridView>
    
    Si qqu'un peux m'aider...

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2004
    Messages : 129
    Points : 103
    Points
    103
    Par défaut
    Ce que tu veux c'est parfois utilise le where et d'autre fois ne pas l'utiliser ?
    Si c'est ça ajoute un OR.

    "SELECT [nom], [prenom], [nom_Institution], [UserName], [Code_Pays]
    FROM [Contacts] WHERE ([id_Pays] = @ValCombo OR @ValCombo is Null)"

    Donc si la valeur du combo est null alors ça va te retourner tous les résultats. Tu peux aussi créer ta requête toi même dans le code vb selon la clause where que tu veux et ensuite du fais le databinding toi-même.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    Afin de que le "%" fonctionne dans la requête (pour tout afficher...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ddlp.DataSource = dsp; 
    ddlp.DataTextField = "pays"; 
    ddlp.DataValueField = "id_Pays"; 
    ddlp.DataBind(); 
    ddlp.Items.Insert(0, new ListItem("Aucun tri", "%")); 
    (...)

    J'ai du adapter la requête automatiquement créée par VWD et le type des paramètres comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SelectCommand="SELECT [id_contact],[nom], [prenom], [id_Institution], [nom_Institution], [UserName], [Code_Pays] FROM [Contacts] WHERE (([id_Pays] LIKE ?) AND ([id_Institution] LIKE ?) AND ([UserId] LIKE ?))"
    runat="server"> 
    <SelectParameters>
    <asp:ControlParameterControlID="ddlp"Name="id_Pays"Type="String"PropertyName="SelectedValue"/>
    <asp:ControlParameterControlID="ddlInstit"Name="id_Institution"Type="String"PropertyName="SelectedValue"/>
    <asp:ControlParameterControlID="ddl"Name="UserId"Type="String"PropertyName="SelectedValue"/>
    </SelectParameters>
    

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème sur Dcount avec une clause where
    Par robyseb dans le forum VBA Access
    Réponses: 9
    Dernier message: 18/08/2011, 22h39
  2. Problème avec une where clause.
    Par Empty_body dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/02/2011, 15h25
  3. [STL] Classe avec une Pile , problème de méthode
    Par camumu dans le forum SL & STL
    Réponses: 3
    Dernier message: 16/05/2007, 14h14
  4. Insert avec une clause where !?
    Par Thomad dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 04/08/2006, 09h55
  5. [super requete] Dumper un model avec une clause where
    Par elievar dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/03/2005, 17h05

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