GridView: Changer le comportement de ses controls

Résolu
sspizer Messages postés 38 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 23 février 2009 - 5 févr. 2009 à 17:42
SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 8 mai 2010 - 16 févr. 2009 à 11:30
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

sspizer Messages postés 38 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 23 février 2009
16 févr. 2009 à 10:54
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
3
ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
7 févr. 2009 à 00:52
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
0
SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 8 mai 2010
8 févr. 2009 à 10:44
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
0
SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 8 mai 2010
16 févr. 2009 à 11:30
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
0
Rejoignez-nous