I use grid view in my project to display data.
I display to properties:
<asp:GridView ItemType="WebUI.FeatureInfoArea.FeatureDesc" AutoGenerateColumns="false" ID="gvFeatList" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<%# Item.Title %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<%# Item.Tip %>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
And here how I bind to data source:
FeaturesDesc result = getData();
gvFeatList.DataSource = result.featureDesc;
gvFeatList.DataBind();
And here is FeaturesDesc class:
public class FeaturesDesc
{
public List<FeatureDesc> featureDesc { get; set; }
}
public class FeatureDesc
{
public string Title { get; set; }
public string Tip { get; set; }
public string UID { get; set; }
}
When columns is created on browser the data is displayed in rows, but headers of the columns are empty.
I know that I can use TextHeader
attribute in TemplateField
but I want that column header to be displayd dynamically according to FeatureDesc
class property.
How can I make display column's header dynamically?