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 :

Lier un dataSource à une GridView par le code


Sujet :

ASP.NET

  1. #1
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 49
    Par défaut Lier un dataSource à une GridView par le code
    Bonjour,

    VS2005, C#.

    sur ma page aspx, j'ai une gridView. Elle n'est liée à aucun dataSource.
    Par contre je veux la lier à un dataSource dans ma page aspx.cs.

    donc dans ma page aspx.cs (dans la méthode page_load), je crée un dataSource :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SqlDataSource sqlSource = new SqlDataSource(HttpContext.Current.Session["connexion"].ToString(), maRequete);
    ma requete contient des parametres donc je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            ControlParameter year = new ControlParameter();
            year.Name = "year";
            year.Type = TypeCode.String;
            year.ControlID = "DropDownListAnnee";
            year.PropertyName = "SelectedValue";
    Mais j'ai l'erreur suivante :
    Impossible de trouver le contrôle 'DropDownListAnnee' dans ControlParameter 'year'.

    Quelqu'un à une idée d'où peut venir mon erreur sachant que j'ai bien une liste déroulante qui s'apelle DropDownListAnnee.

  2. #2
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Il faut spécifier le Id de la sqldatasource.

    Ou assigner les propriétés dynamiquement et non pas la création de la sqldatasource.

  3. #3
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 49
    Par défaut
    Citation Envoyé par mehdi_tn
    Il faut spécifier le Id de la sqldatasource.
    Tu entends quoi par cette phrase?
    Spécifier où ça?

    J'ai oublier de préciser que après la création des paramètres je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sqlSource.SelectParameters.Add(year);
    Page.Controls.Add(sqlSource);
    GridView2.DataSource = sqlSource;

  4. #4
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut il faut fermer les quotes
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sqlSource.ID= "ID"

    N'oublie pas d'ajouter le control à la liste des Controls de la page

  5. #5
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 49
    Par défaut
    J'ai testé mais ce n'est pas ça.

    Je précise que ça ne plante pas sur le code que j'ai précisé ci dessus (dans les autres messages), mais quand la page s'affiche, j'ai toujours le message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Impossible de trouver le contrôle 'DropDownListAnnee' dans ControlParameter 'year'.

  6. #6
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Oui pardon, j'étais parti sur une autre piste !!!

    Elle où declarée ta DDL "DropDownListAnnee" ?

  7. #7
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 49
    Par défaut
    Je ne sais pas, je n'ai jamais fait attention aux DLL.
    Il y a un endroit où elles sont stockées par défaut?

  8. #8
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    non non DDL ( Drop Down List ) que tu as appelé DropDownListAnnee.

  9. #9
    Membre émérite Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Par défaut
    je crois que medhi entends par DDL (DropDownList) et non dll .

    en gros il te manque le controle 'DropDownListAnnee' a moins qu'il est une faute d'ortographe.

  10. #10
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 49
    Par défaut
    Désolé j'avais pas compris, .

    Dans mon fichier aspx j'ai bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <asp:DropDownList ID="DropDownListAnnee" runat="server" AutoPostBack="True" DataSourceID="SqlDataSourceAnnee"
    DataTextField="annee" DataValueField="annee" OnPreRender="DropDownListAnnee_PreRender">
    </asp:DropDownList>
    est-ce que ça ne pourrait pas venir du fait que mon dataSource et ses paramètres sont créés dans ma méthode page_load() c'est à dire quand la DDL (DropDownList) n'existe pas encore?

  11. #11
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 49
    Par défaut
    J'ai modifié un peu mon code et je n'est plus d'erreur mais ma gridView n'est pas remplie (elle n'apparait meme pas sur ma page).

    mon nouveu code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SqlDataSource sdsConsultant = new SqlDataSource();
     
    sdsConsultant.ConnectionString = HttpContext.Current.Session["connexion"].ToString();
     
    sdsConsultant.ID = "monID";
    sdsConsultant.SelectCommand = maRequete;
     
    QueryStringParameter id = new QueryStringParameter("YEAR", DropDownListAnnee.SelectedValue.ToString());
    sdsConsultant.SelectParameters.Add(id);
     
    Page.Controls.Add(sdsConsultant);
    GridView2.DataSourceID = sdsConsultant.ID;
    GridView2.DataBind();

  12. #12
    Membre émérite Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Par défaut
    as tu verifier si ta requete renvoie bien quelquechose.
    si non (t'as trouve ton probleme )

    la propriete de ton datagrid : autogenerate column est true ??

  13. #13
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 49
    Par défaut
    Oui ma requete renvoie bien quelquechose et la propriete autogenerate column est à true.

    Par contre je viens de m'apercevoir que lors du premier lancement de la page, rien n'est affiché (je ne vois meme pas mon dataGrid) et lorsque que je change un champ année qui se trouve dans une liste déroulante qui fait un postBack, j'ai l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Le DataSourceID de 'GridView2' doit être l'ID d'un contrôle de type IDataSource. Un contrôle doté de l'ID 'monID' est introuvable.

  14. #14
    Membre émérite Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Par défaut
    ton code est bien mis dans Page_Load()?

  15. #15
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 49
    Par défaut
    Oui mon code est mis dans page_load()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     protected void Page_Load(object sender, EventArgs e)
    {
             if (!IsPostBack)
            {
                // cette methode lie mon dataSource à une requête
                initializeSDS();
            }
    }
    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
     
    protected void initializeSDS()
        {
            string strConnection = HttpContext.Current.Session["connexion"].ToString();
            sdsConsultant.ConnectionString = strConnection;
            //SELECT 
            sdsConsultant.ID = "monID";
            sdsConsultant.SelectCommand = maRequete;
     
            QueryStringParameter id = new QueryStringParameter("YEAR", DropDownListAnnee.SelectedValue.ToString());
            sdsConsultant.SelectParameters.Add(id);
            QueryStringParameter id2 = new QueryStringParameter("COD_USER", DropDownListActeur.SelectedValue.ToString());
            sdsConsultant.SelectParameters.Add(id2);
     
            Page.Controls.Add(sdsConsultant);
            sdsConsultant.DataBind();
            GridView2.DataSourceID = sdsConsultant.ID;
            GridView2.DataBind();
            sdsConsultant.Dispose();
            //Page.DataBind();
        }
    Voila pour le code mais ça ne fonctionne pas.

Discussions similaires

  1. [VBA-E] Ajouter une reference par le code
    Par mustang-ffw02 dans le forum Installation, Déploiement et Sécurité
    Réponses: 12
    Dernier message: 21/11/2006, 19h28
  2. Lancer une requête par du code
    Par Kyrha dans le forum Access
    Réponses: 8
    Dernier message: 30/05/2006, 09h10
  3. [VBA-E] Comment créer un bouton ds une wksheet par un code vba
    Par moicwill dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/05/2006, 17h12
  4. [Forms 6i] Exécuter une lov par le code
    Par macben dans le forum Oracle
    Réponses: 2
    Dernier message: 02/02/2006, 17h04
  5. Ajouter une colonne (par du code) dans Listview
    Par __fabrice dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/11/2005, 17h39

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