GridView > RowDataBound + TemplateField, comment binder mes données
Bonjour,
je decouvre un peu l'utilisation du GridView, et j'ai du mal à mettre mes données dans les templates que j'ai défini.
concrètement, j'ai ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
protected override void OnLoad(EventArgs e)
{
this.gvTest.DataSource = MyTable();
this.gvTest.DataBind();
}
private DataTable MyTable()
{
DataTable myTable = new DataTable();
myTable.Columns.Add("ID", typeof(Int32));
myTable.Columns.Add("Gender", typeof(String));
myTable.Columns.Add("Name", typeof(String));
myTable.Rows.Add(687861, "Male", "Guy");
myTable.Rows.Add(456878, "Unknown", "John");
myTable.Rows.Add(867867, "Unknown", "Ely");
myTable.Rows.Add(558757, "Female", "Sarah");
return myTable;
} |
Ensuite, à l'appelle de mon RowDataBound, j'ai un début de code, mais je ne sais pas comment accéder aux données que j'ai mise dans le DataSource (j'ai épuré un peu le code).
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
void gvTest_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
Literal lIdTitle = (Literal)e.Row.FindControl("lIdTitle");
lIdTitle.Text = "test1"; // j'aimerais mettre le nom de ma colonne
}
if (e.Row.RowType == DataControlRowType.DataRow)
{
Literal lIdData = (Literal)e.Row.FindControl("lIdData");
lIdData.Text = "test"; // pareil ici avec la bonne valeur
}
} |
et juste pour info voici mon code aspx
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
<asp:GridView ID="gvTest" Width="100%" AutoGenerateColumns="false" AllowSorting="true" EmptyDataText="aucune données" runat="server">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<p><a href="#"></a></p>
<h3><asp:Literal ID="lIdTitle" runat="server" /></h3>
</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="lIdData" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
<p><a href="#"></a></p>
<h3><asp:Literal ID="lGenderTitle" runat="server" /></h3>
</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="lGenderData" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
<p><a href="#"></a></p>
<h3><asp:Literal ID="lNameTitle" runat="server" /></h3>
</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="lNameData" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView> |