GridView: Changer le comportement de ses controls [Résolu]

Signaler
Messages postés
38
Date d'inscription
mercredi 4 juillet 2007
Statut
Membre
Dernière intervention
23 février 2009
-
SuperBouly
Messages postés
411
Date d'inscription
dimanche 1 février 2004
Statut
Membre
Dernière intervention
8 mai 2010
-
Bonjour,

J'ai actuellement un GridView qui contient qui contient une textbox:
<

asp:GridView
ID="_grv" 

runat="server">
<Columns>
   <asp:TemplateField>
      <ItemTemplate>
         <asp:TextBox
ID="_txt"
runat="server"/>
      </ItemTemplate>
   </asp:TemplateField>
</Columns>
</asp:GridView>

Maintenant j'aimerais dans le code behind pouvoir modifier le comportement de ma textbox et eventuellement modifier le champs auquel il est rattaché à ma DataSource.
Je suis censé m'y prendre comment ?

4 réponses

Messages postés
38
Date d'inscription
mercredi 4 juillet 2007
Statut
Membre
Dernière intervention
23 février 2009

Bien joué Bouly c'était effectivement dans l'evenement OnRowDataBound, par contre la syntaxe est la suivante:


publicvoid GridView_OnDataBound(object sender, GridViewRowEventArgs args)
{
   
TextBox _txt = (
TextBox)args.Row.Cells[0].FindControl(
"_txt");
   _txt.Text =
"TuTu";
}

Par contre il faut faire attention à ne pas faire ça sur la première occurence de l'évenement qui correspond à la ligne de titre de colonne:
ColumnTitle => -1
Row0 => 0
Row1 => 1

etc ...

Voila :D
Messages postés
417
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
21 juillet 2010
1
Bonsoir,

Si tu veux une réponse un peu précise, tu devrais essayer de décrire plus précisément ce que tu veux faire.
Qu'entends-tu par "modifier le comportement de ma textbox" ? et que veux-tu faire en modifiant le champ auquel elle est rattachée ?

GGtry
Messages postés
411
Date d'inscription
dimanche 1 février 2004
Statut
Membre
Dernière intervention
8 mai 2010

bonjour,
il faut intervenir dans MonGridView.RowDataBound :
Dim _txt as textbox= MonGridView.findControl("_txt")
_txt.Text=e.row.dataItem("monNouveauchamp") ou ="zutetZut" si tu veux !

SuperBouly
Messages postés
411
Date d'inscription
dimanche 1 février 2004
Statut
Membre
Dernière intervention
8 mai 2010

oui, tu as parfaitement raison, en vb.net, j'aurais du écrire
ife.Row.RowType = DataControlRowType.DataRow

Dim _txt as textbox=e.Row.findControl("_txt")
----- etc ...
de plus, en C#, pas de Handles MonGridView.RowDataBound
SuperBouly