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 :

[VB.NET] GridView avec une datatable stockée en cache


Sujet :

ASP.NET

Vue hybride

nine93 [VB.NET] GridView avec une... 15/03/2007, 09h43
nine93 J'ai abandonné les gridview... 23/04/2007, 15h07
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 44
    Par défaut [VB.NET] GridView avec une datatable stockée en cache
    Bonjour,

    J'ai une gridview avec plusieurs champs TemplateField pour les modifier.
    J'utilise une datatable stockée dans le cache pour alimenter ma gridview.

    Ma datatable se remplit correctement = 3 lignes par exemple.
    Mais lorsque j'essaie de la lier à la gridview, celle-ci ne m'affiche que la dernière ligne ?! Les 2 premières n'apparaîssent pas

    Avez-vous une idée ?

    Pour vous aider voici mon code :

    GridView :
    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
    <asp:GridView ID="gvwCategories" runat="server" AutoGenerateColumns="False" AllowPaging="true" CellPadding="4" DataKeyNames="IDCAT">
       <Columns>
          <asp:BoundField HeaderText="Désignation" DataField="DESIGNATION"/>
          <asp:TemplateField HeaderText="Client">
             <ItemTemplate>
                <asp:TextBox ID="txtClient" Text='<%#DataBinder.Eval(Container.DataItem,"CLIENT")%>' runat="server" />
             </ItemTemplate>
          </asp:TemplateField>
          <asp:TemplateField HeaderText="Seuil">
             <ItemTemplate>
                <asp:TextBox ID="txtSeuil" Text='<%#DataBinder.Eval(Container.DataItem,"SEUIL")%>' runat="server" MaxLength="3" />            
             </ItemTemplate>
          </asp:TemplateField>
          <asp:TemplateField HeaderText="Coefficient">
             <ItemTemplate>
                <asp:TextBox ID="txtCoefficient" Text='<%#DataBinder.Eval(Container.DataItem,"COEFFICIENT")%>' runat="server" MaxLength="3" />            
             </ItemTemplate>
          </asp:TemplateField>
       </Columns>
    </asp:GridView>
    Voici ma datatable :
    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
     
    Dim dttCategories As New DataTable
    dttCategories = Cache.Get("dttCat" & Session.SessionID)
     
    'Si les données sont chargées pour la première fois
    If insertData = True Then
     
       Dim myDataRow As DataRow
     
       Dim myCon As New clsDatabase("MABASE")
       Dim dtsCategories As DataSet = myCon.createDataSet("SELECT * FROM CATEGORIE ORDER BY DESIGNATION", "tabCat")
       Dim dtvCatRef As DataView = dtsCategories.Tables("tabCat").DefaultView
     
       'On complète la dataTable en fonction des catégories sélectionnées
       For Each myItem As ListItem In chlCategories.Items
     
          'Si la catégorie est sélectionnée
          If myItem.Selected = True Then
     
             '1. On vérifie qu'elle n'existe pas dans la datable
             Dim dtvCatSel As DataView = dttCategories.DefaultView
             dtvCatSel.RowFilter = "IDCAT = '" & myItem.Value & "'"
     
             'Si elle n'existe pas, on l'ajoute à la DataTable
             If dtvCatSel.Count = 0 Then
     
                '2. On ajoute la catégorie à la DataTable
                dtvCatRef.RowFilter = "IDCAT = '" & myItem.Value & "'"
                For Each myRow As DataRowView In dtvCatRef
                   myDataRow = dttCategories.NewRow
                   myDataRow("IDCAT") = myRow("IDCAT")
                   myDataRow("DESIGNATION") = myRow("DESIGNATION")
                   myDataRow("SEUIL") = myRow("SEUIL")
                   myDataRow("COEFFICIENT") = myRow("COEFFICIENT")
                   dttCategories.Rows.Add(myDataRow)
                Next
             End If
          End If
       Next
     
       Cache.Insert("dttCat" & Session.SessionID, dttCategories)
     
    End If
     
    gvwCategories.DataSource = dttCategories
    gvwCategories.DataBind()
    Voilà. J'espère que vous pourrez m'aider. Merci.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 44
    Par défaut
    J'ai abandonné les gridview et j'utilise maintenant des contrôles TABLE.

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

Discussions similaires

  1. alimenter gridview avec une Procédure Stockée?
    Par koukou0687 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 19/01/2011, 14h44
  2. Réponses: 2
    Dernier message: 09/07/2007, 13h09
  3. Réponses: 5
    Dernier message: 05/07/2007, 09h01
  4. [VB.NET 2.0] - Problème avec une procédure stockée
    Par Khrysby dans le forum Accès aux données
    Réponses: 1
    Dernier message: 14/05/2007, 15h25
  5. Problème avec une procédure stockée
    Par in dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/05/2003, 15h33

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