il y a une autre façon de traiter le pbm :
mettre un literal dans la colonne et lui affecter une valeur ligne par ligne
dans le code aspx:
1 2 3 4 5 6 7
| <asp:TemplateField HeaderText="PouetPouetTralala">
<ItemTemplate>
<asp:Literal runat="server" ID="ltCol1Item" Text="" />
</ItemTemplate>
<FooterTemplate>
<asp:Literal runat="server" ID="ltCol1Footer" Text="" />
</FooterTemplate> |
Et dans le code cs:
1 2 3 4 5 6 7 8 9 10 11 12 13
| protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
for (int i = 0; i < GridView1.Columns.Count; i++)
if (GridView1.Columns[i].Visible)
{
Literal ltItemText = (Literal)e.Row.FindControl(String.Format("ltCol{0}Item", i));
if (ltItemText != null)
ltItemText.Text = GridView1.Columns[i].HeaderText;
}
}
} |
Il ne reste plus qu'à brancher la grille sur le code serveur
<asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound">
Là je n'ai traité que le texte de la ligne; pour le footer il n'y a qu'à ajouter un deuxième RowType pris en compte
Damien Thouvenin
-------------
CLT Services, spécialistes Dot Net + SQL 2005
Partager