probleme de template avec une datagrid

probleme de template avec une datagrid - C#/.NET managed - Programmation

Marsh Posté le 13-04-2005 à 11:20:00    

Bonjour,
 
Voila j'ai un probleme pour afficher les donnés de ma dataset dans une datagrid customisé. L'appel à Container.DataItem("techno_lithium" ) me pose probleme car dans tout les exemple que j'ai pu trouvé ca semble marché. D'un autre coté c'est des exemples en VB.net moi je le fait en c#. Mon besoin c'est d'afficher les donnée de ma table avec des nom de colone propre. Je peux afficher la une dataset par defaut mais les nom de colone sont du genre TABEL_EMETEUR, DATE_REPLIE bref pas beau.
 
voici mon code :  

Code :
  1. <asp:DataGrid id=DataGrid1 runat="server" DataSource="<%# ds %>" GridLines="Horizontal" BorderWidth="1px" CellPadding="9" AutoGenerateColumns="False" Height="366px">
  2. <Columns>
  3. <asp:TemplateColumn HeaderText="Techno">       <ItemTemplate>
  4. <asp:Label ID="techno" Runat="server" Text='<%# Container.DataItem("techno_lithium" )%>'/>
  5. </ItemTemplate>
  6. </asp:TemplateColumn>           </Columns>          </asp:DataGrid>


 
et je remplis mon dataset de la sorte :  
 

Code :
  1. SQLstr = "select * from product_be";
  2. dataAddapt = new OdbcDataAdapter(SQLstr, Global.conn);
  3. ds = new DataSet("product_be" );
  4. dataAddapt.Fill(ds);
  5. DataGrid1.DataSource = ds.Tables["product_be"].DefaultView;
  6. DataGrid1.DataKeyField = "part_number";
  7. Page.DataBind();


 
voici mon erreur :  
 


http://localhost/CodProLP_LR/WebForm1.aspx(96,61): error CS0118: 'System.Web.UI.WebControls.DataGridItem.DataItem' désigne 'propriété' où 'méthode' était attendu
http://localhost/CodProLP_LR/WebForm1.aspx(101,61): error CS0118: 'System.Web.UI.WebControls.DataGridItem.DataItem' désigne 'propriété' où 'méthode' était attendu


---------------
Cantonaifou c'est pour la vie
Reply

Marsh Posté le 13-04-2005 à 11:20:00   

Reply

Marsh Posté le 13-04-2005 à 14:36:07    

Pk ce bout de code marche pas
<asp:Label ID="techno_lithium" Runat="server" CssClass="Tab1" Text='<%#Container.DataItem("techno_lithium" )  %>'/>  
 
Alors que ce bout de code marche    <asp:BoundColumn DataField="techno_lithium" HeaderText="Techno"></asp:BoundColumn>


---------------
Cantonaifou c'est pour la vie
Reply

Marsh Posté le 13-04-2005 à 14:50:18    

Modifie la propriété "Caption" des DataColumn des DataTable dans le DataSet, ça prendra cette propriété comme nom de colonne

Reply

Marsh Posté le 13-04-2005 à 15:03:41    

Merci pour la réponsse, mais je dois t'avouer que t super pas clair. J'ai bien trouvé la propriété caption, mais j'y met quoi?


---------------
Cantonaifou c'est pour la vie
Reply

Marsh Posté le 13-04-2005 à 15:07:18    

Le nom de la colonne que tu désire afficher, donc pour ta colonne DATE_REPLIE, tu met "Date de repliement"

Reply

Marsh Posté le 13-04-2005 à 15:13:31    

hum... je pense que l'on parle pas de la même chose. Je ne travail pas avec les columns. Regarde mon code plus haut tout ce que je fait pour remplir ma datagrid :: DataGrid1.DataSource = ds.Tables["product_be"].DefaultView; je ne travail pas sur les columns. Si c'est moi qui fais fausse route peux tu m'ajouter le caption dans mon code STP? Merci encore pour ton aide


---------------
Cantonaifou c'est pour la vie
Reply

Marsh Posté le 13-04-2005 à 15:16:43    

Oui, j'ai pas du tout piger :D Enfin c'est de l'ASP.NET aussi

Reply

Marsh Posté le 13-04-2005 à 15:34:14    

hum dans ca cas là qui peut m'aider? Je vois toujours pas pk ce bout de code marche pas <asp:Label ID="techno_lithium" Runat="server" CssClass="Tab1" Text='<%#Container.DataItem("techno_lithium" )%>'/>  


---------------
Cantonaifou c'est pour la vie
Reply

Marsh Posté le 13-04-2005 à 17:22:28    

help plz!


---------------
Cantonaifou c'est pour la vie
Reply

Marsh Posté le 14-04-2005 à 10:11:42    

Text='<%# ((System.Data.DataRowView)(Container.DataItem)).Row[0] %>'/>
 
Voila la réponsse, il me manquais un cast.


---------------
Cantonaifou c'est pour la vie
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed