Lire ligne d'un GridView

Résolu
adomarle Messages postés 41 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 15 juin 2012 - 1 juin 2007 à 17:05
adomarle Messages postés 41 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 15 juin 2012 - 19 juin 2007 à 12:05
Bonjour,

J'ai un gridview avec des colonnes non affichées :
<

asp:GridView
ID= "GridView_Commande"
runat="server"
DataSourceID="DS_Test">

<Columns>





<asp:BoundField
DataField ="Nom_Conso"
HeaderText="Nom_Conso"
SortExpression="Nom_Conso"
/>

<asp:BoundField
DataField="Ref_Conso"
HeaderText="Ref_Conso"
SortExpression="Ref_Conso"
/>

<asp:BoundField
DataField="Prix"
HeaderText="Prix"
SortExpression="Prix"
/>

<asp:TemplateField
HeaderText="Quantit&#233;">

<ItemTemplate>

<asp:TextBox
ID="Quantite"
runat="server"
Width="50px"></asp:TextBox>

</ItemTemplate>

</asp:TemplateField>

</Columns>

</asp:GridView>

J'arrive à récupérer les données affichées mais pas mais données cachées :
for

(
int i = 0; i <
this.GridView_Commande.Rows.Count; i++){

GridViewRow gdRow =
this.GridView_Commande.Rows[i];

for (
int j = 0; j < gdRow.Cells.Count; j++){

TableCell cell = gdRow.Cells[j];

if (cell.Controls.Count != 0){

if (cell.Controls[1]
is
TextBox){

TextBox tb = (
TextBox)cell.Controls[1];this.Label.Text += tb.Text +

"--"}

}

else{

This.Label.Text += cell.Text +

"--";}

}

This.Label.Text +=

"
";

Ce code me permet bien d'afficher les données "affichées" par le gridview mais je n'arrive pas à récupérer le "id_consommable" et le "id_service".

Si quelqu'un a une idée, ce serait super !!!!

Merci d'avance,
Clem

3 réponses

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 24
1 juin 2007 à 22:22
// essayes ça même si je ne vois pas ou sont tes textBox ?

TextBox tb 
= (TextBox)GridView_Commande.Rows[i].FindControl("LE_TEXT_BOX");

Mais dans ton cas tu peux utiliser le champs dataKeyName du gridView

DataKeyNames="id_consomable, id_service"
</gras> >

foreach ( GridViewRow gvr in this.gv )
{
       if( gvr.RowType == DataControlRowType.DataRow )
      {
         // Récupère les données  &
         // les dataKeys de la ligne
         
         int idConso = Convert.ToInt32(gv.DataKeys[gvr.RowIndex].Values[ 0 ]);
         int idServ  = Convert.ToInt32(gv.DataKeys[gvr.RowIndex].Values[1]);
      }
   }
}
3
caudette Messages postés 52 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 20 août 2007
18 juin 2007 à 17:23
slt,
dansta gridview, la proprieté visible false donc tu ne veux pas afficher, mets çatrue. et executes pour voir le resultat.
0
adomarle Messages postés 41 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 15 juin 2012
19 juin 2007 à 12:05
Salut,

Mon but est que le champ ne soit pas visible par les utilisateurs.
Merci de ton aide.

Clem
0