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 :

Probleme de DataBind d'une gridview


Sujet :

ASP.NET

  1. #1
    Membre confirmé Avatar de Jefty
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Décembre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 203
    Par défaut Probleme de DataBind d'une gridview
    Bonjour à tous,

    Débutant dans le développement web par visual studio, je me retrouve perdu dans des problèmes qui me semblent basiques...

    Bref, j'ai repris la méthode de Databind d'une gridview sur le site de microsoft et j'ai remplacer certaines choses.

    ça donne ceci:
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    sing System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
     
    namespace WebApplication2
    {
        public partial class _Default : System.Web.UI.Page
        {
            void Page_Load(Object sender, EventArgs e)
            {
     
                // This example uses Microsoft SQL Server and connects
                // to the Test sample database. The data source needs
                // to be bound to the GridView control only when the 
                // page is first loaded. Thereafter, the values are
                // stored in view state.                      
                if (!IsPostBack)
                {
     
                    // Declare the query string.
                    String queryString =
                      "Select * From WBDT_DT_TICKET";
     
                    // Run the query and bind the resulting DataSet
                    // to the GridView control.
                    DataSet ds = GetData(queryString);
                    if (ds.Tables.Count > 0)
                    {
                        GvTA.DataSource = ds;
                        GvTA.DataBind();
                    }
                    else
                    {
     
                    }
     
                }
     
            }
     
            DataSet GetData(String queryString)
            {
     
                // Retrieve the connection string stored in the Web.config file.
                String connectionString = ConfigurationManager.ConnectionStrings["Test"].ConnectionString;
     
                DataSet ds = new DataSet();
     
                try
                {
                    // Connect to the database and run the query.
                    SqlConnection connection = new SqlConnection(connectionString);
                    SqlDataAdapter adapter = new SqlDataAdapter(queryString, connection);
     
                    // Fill the DataSet.
                    adapter.Fill(ds);
     
                }
                catch
                {
     
                }
     
                return ds;
     
            }
        }
    }
    Pour la partie Default.aspx:

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2._Default" %>
     
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Page sans titre</title>
    </head>
    <body bgcolor="white">
     
        <form id="form1" runat="server">
        <div>
            <asp:Label ID="Label1" runat="server" Text="GESTION DES ARRETS DES POSTES DE FABRICATION" ForeColor="#FF8000"></asp:Label><br />
            <br />
            <cc1:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0" Height="544px" Width="848px"><cc1:TabPanel runat="server" HeaderText="Arrêt" ID="TabPanel1">
     
                <ContentTemplate>
                    <br /><asp:Label ID="lblRech" runat="server" ForeColor="Highlight" Text="Fonction de recherche:"></asp:Label> <br /><br /><asp:Label ID="lblPoste" runat="server" Text="Poste:"></asp:Label> 
                    <asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList><br /><br />
                    <asp:Label ID="lvlDef" runat="server" Text="Définir une période:"></asp:Label> <br /><br />
                    <asp:Label ID="lblDu" runat="server" Text="Du:"></asp:Label> &nbsp;
                    <asp:TextBox ID="txtDate1" runat="server"></asp:TextBox> &nbsp; <asp:Label ID="lblAu" runat="server" Text="au:"></asp:Label> 
                    <asp:TextBox ID="txtDate2" runat="server"></asp:TextBox> &nbsp; <cc1:CalendarExtender ID="CE1" runat="server" Enabled="True" TargetControlID="txtDate1"></cc1:CalendarExtender> 
                    <cc1:CalendarExtender ID="CE2" runat="server" Enabled="True" TargetControlID="txtDate2"></cc1:CalendarExtender> 
                    <br /><asp:Label ID="lblTA" runat="server" Font-Italic="True" ForeColor="Highlight" Text="Liste des tickets d'arrêt:"></asp:Label> 
                    <br /><br />
                                 <asp:GridView ID="GvTA" AllowSorting="true" AllowPaging="true" Runat="server"
                                         DataSourceID="SqlDataSource1" AutoGenerateEditButton="true" DataKeyNames="ID_Ticket"
                                         AutoGenerateColumns="False">
                                        <Columns>
                                             <asp:BoundField ReadOnly="true" HeaderText="ID_Ticket" DataField="ID_ticket" SortExpression="ID_ticket" />
                                             <asp:BoundField HeaderText="Type Ticket" DataField="TicketTypeCode" SortExpression="TicketTypeCode" />
                                             <asp:BoundField HeaderText="Type Maintenance" DataField="MaintenanceTypeCode" SortExpression="MaintenanceTypeCode" />
                                             <asp:BoundField HeaderText="Date" DataField="DateTime" SortExpression="DateTime" />
                                             <asp:BoundField HeaderText="Status" DataField="EventCode" SortExpression="EventCode" />
                                             <asp:BoundField HeaderText="ID Assigné" DataField="AssigneUserID" SortExpression="AssigneUserID" />
                                             <asp:BoundField HeaderText="Poste" DataField="WorkBench" SortExpression="WorkBench" />
                                             <asp:BoundField HeaderText="Sous Poste" DataField="WorkBenchDiv" SortExpression="WorkBenchDiv" />
                                             <asp:BoundField HeaderText="Code Priorité" SortExpression="SeverityDTCode" DataField="SeverityDTCode" />
                                             <asp:BoundField HeaderText="Code Evénementiel" DataField="EventCode" SortExpression="EventCode" />
     
                                             <asp:BoundField HeaderText="Statut" DataField="DTStatus" SortExpression="DTStatus" />
                                             <asp:BoundField HeaderText="Poste" DataField="WorkBench" SortExpression="WorkBench" />
                                             <asp:BoundField HeaderText="Commentaire" DataField="TicketComment" SortExpression="TicketComment" />
                                             <asp:CheckBoxField HeaderText="Email" SortExpression="EmailFollowing" DataField="EmailFollowing" />
     
                                             <asp:BoundField HeaderText="ID utilisateur session" DataField="SessionUserID" SortExpression="SessionUserID" />
                                             <asp:BoundField HeaderText="Value Stream" DataField="WBVS" SortExpression="WBVS" />
                                             <asp:BoundField HeaderText="Cellule" SortExpression="WBCELL" DataField="WBCELL" />
                                             <asp:BoundField HeaderText="Raison d'annulation" DataField="CancelReasonCode" SortExpression="CancelReasonCode" />
                                         </Columns>
                                 </asp:GridView>
          <asp:SqlDataSource ID="SqlDataSource1" Runat="server" SelectCommand="SELECT * FROM WBDT_DT_TICKET"
            ConnectionString="<%$ ConnectionStrings:Test %>" />
     
                    <asp:Label ID="lblCrea" runat="server" Font-Italic="True" ForeColor="Highlight" Text="Création d'un tickets d'arrêt:"></asp:Label>
                    <br /><br /><asp:Label ID="lblVS" runat="server" Text="VS:"></asp:Label> 
                    <asp:TextBox ID="txtVS" runat="server"></asp:TextBox> <br /><asp:Label ID="lblCell" runat="server" Text="Cellule:"></asp:Label> 
                    <asp:TextBox ID="txtCell" runat="server"></asp:TextBox> <br />
                    <asp:Label ID="lblPosteCrea" runat="server" Text="Poste:"></asp:Label> <asp:TextBox ID="txtPoste" runat="server"></asp:TextBox> 
                    <asp:Button id="btnValider" runat="server" Text="Valider"></asp:Button> 
                    <cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"></cc1:ToolkitScriptManager> 
                </ContentTemplate>
            </cc1:TabPanel>
    <cc1:TabPanel runat="server" HeaderText="Intervention" ID="TabPanel2"></cc1:TabPanel>
    <cc1:TabPanel runat="server" HeaderText="Planification" ID="TabPanel3"></cc1:TabPanel>
    <cc1:TabPanel runat="server" HeaderText="Administration" ID="TabPanel4"></cc1:TabPanel>
    </cc1:TabContainer>&nbsp;</div>
        </form>
    </body>
    </html>
    Je me retrouve avec une erreur qui me dit qu'il n'est pas nécessaire d'avoir "GvTA.DataSource = ds" et "GvTA.DataBind();".
    Qu'un seul des deux suffit, bien sur si j'en enlève un, ça ce lance mais j'ai pas de gridview.

    Je suis un peut complétement paumé XD
    Je sais même pas si le reste est correctement écrit en faite, donc je veux bien un avis global sur ce qui ne va pas.
    Merci d'avance.

  2. #2
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <asp:SqlDataSource ID="SqlDataSource1" Runat="server" SelectCommand="SELECT * FROM WBDT_DT_TICKET"
            ConnectionString="<%$ ConnectionStrings:Test %>" />
    cette balise asp permet de te connecter a la base de données , de lancer l'instruction select et de remplir ton gridView (puisque dans ton gridview tu as
    DataSourceID="SqlDataSource1" )

    Donc dans ton code behind tu n'as rien a faire.

    Dans ton code behind, tu es en train de faire la même chose mais de facon programmatique

    Si tu veux garder le code behind parce que tu trouves ca plus facile a comprendre et lisible, alors il faut que tu enleves la balise SqlDataSource.

  3. #3
    Membre confirmé Avatar de Jefty
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Décembre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 203
    Par défaut
    J'essayerais demain, merci.

  4. #4
    Membre confirmé Avatar de Jefty
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Décembre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 203
    Par défaut
    J'ai retirer la ligne, mais j'ai une erreur que j'ai chercher à résoudre, mais je ne trouve pas:

    The DataSourceID of 'GvTA' must be the ID of a control of type IDataSource. A control with ID 'SqlDataSource1' could not be found.
    Et si je retire DataSourceID="SqlDataSource1" du bloc <asp:GridView....
    La page s'affiche sans le tableau.

    En fait, on dirait que la page default.aspx.cs n'est pas lu, j'ai rajouter des messages d'erreurs qui devraient s'afficher dans une textbox si il n'y à pas de connexion.
    Mais rien ne s'affiche.

    ps de fin de journée:

    Je suis complétement paumé, j'ai essayer de faire une ComboBox en passant par l'aide de Visual Studio 2005 dans les propriété "DataSourceID".
    Ici il voit le serveur, les bases de données, les tables...
    Je choisi donc la table correspondante, et la colonne qui me convient.
    Je lance l'application je me retrouve avec une ComboBox remplit avec un message "System.Data.DataRowView" pour chaque séléction.

    Si même ça ca fonctionne pas, je vois mal comment mon GridView peut ce remplir.
    J'ai aussi essayer en abandonnant la partie C# et en réutilisant DataSourceID="SqlDataSource1".
    J'obtiens aussi une page blanche.


  5. #5
    Membre confirmé Avatar de Jefty
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Décembre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 203
    Par défaut
    Le message pourrait il être déplacer dans la partie ASP.NET simple?
    On dirait que peut de gens viennent dans cette partie du forum vue le peut de post suivit .

    Merci d'avance.

  6. #6
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Si tu as conservé la partie code behind, il faut aussi que tu supprimes la référence à ton sqlDatasource1 dans ta grid.
    Enlève "DataSourceID="SqlDataSource1" dans la déclaration de ta grid.

    Le binding coté code behind se fera avec ces deux lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GvTA.DataSource = ds;
    GvTA.DataBind();

  7. #7
    Membre confirmé Avatar de Jefty
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Décembre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 203
    Par défaut
    J'ai déjà essayer ceci.
    Ça n'a malheureusement rien retourner au niveau du tableau.
    J'ai juste un blanc, même pas le nom des colonnes, rien.
    Comme j'ai dit avant, même la combobox ne fonctionne pas correctement.
    On dirait un problème de lecture de base de données sur le serveur....
    Merci quand même.

  8. #8
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut
    SAlut

    Dans ce cas mets un breakpoint sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GvTA.DataSource = ds;
    et regarde si ton dtaset est vide ou non...

  9. #9
    Membre confirmé Avatar de Jefty
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Décembre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 203
    Par défaut
    GvTA.DataSource null
    En effet vu comme ça :/

    ps: autant pour moi, j'ai pas lu la bonne ligne.
    J'ai bien une valeur: ds = system.data.dataset

  10. #10
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut
    Citation Envoyé par Jefty Voir le message
    GvTA.DataSource null
    En effet vu comme ça :/

    ps: autant pour moi, j'ai pas lu la bonne ligne.
    J'ai bien une valeur: ds = system.data.dataset
    Ca ne dit pas si ton dataset est vide ou non.

    Il semblerait que tu ne maitrises pas du tout le gridView, je te conseille de lire qques tutos.

    http://larreurdefarcy.com/whidbey/Tu...0Gridview.html
    http://www.aspnet101.com/2007/11/a-b...-the-gridview/

  11. #11
    Membre confirmé Avatar de Jefty
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Décembre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 203
    Par défaut
    J'ai trouver le problème.
    Merci à vous.

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

Discussions similaires

  1. DataBinding d'une gridview
    Par Delphi-ne dans le forum ASP.NET
    Réponses: 2
    Dernier message: 21/10/2012, 11h51
  2. Probleme lors du databind de mon gridview
    Par kaygee dans le forum ASP.NET
    Réponses: 4
    Dernier message: 17/06/2009, 21h51
  3. probleme sur la suppression de rows d'une gridview
    Par kazoumoulox dans le forum ASP.NET
    Réponses: 2
    Dernier message: 19/06/2007, 10h38
  4. Réponses: 13
    Dernier message: 14/06/2003, 22h15
  5. [VB6] probleme de redirection d'une commande DOS
    Par WriteLN dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 10/06/2003, 09h36

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