current output
alt text http://www.balexandre.com/temp/2010-05-19_1159.png
wanted output
alt text http://www.balexandre.com/temp/2010-05-19_1158.png
current code
public partial class test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
populateData();
}
private void populateData()
{
List<temp> ls = new List<temp>();
ls.Add(new temp { a = "AAA", b = "aa", c = "a", dt = DateTime.Now });
ls.Add(new temp { a = "BBB", b = "bb", c = "b", dt = DateTime.Now });
ls.Add(new temp { a = "CCC", b = "cc", c = "c", dt = DateTime.Now.AddDays(1) });
ls.Add(new temp { a = "DDD", b = "dd", c = "d", dt = DateTime.Now.AddDays(1) });
ls.Add(new temp { a = "EEE", b = "ee", c = "e", dt = DateTime.Now.AddDays(2) });
ls.Add(new temp { a = "FFF", b = "ff", c = "f", dt = DateTime.Now.AddDays(2) });
TemplateField tc = (TemplateField)gv.Columns[0]; // <-- want to assign here just day
gv.Columns.Add(tc); // <-- want to assign here just day + 1
gv.Columns.Add(tc); // <-- want to assign here just day + 2
gv.DataSource = ls;
gv.DataBind();
}
}
public class temp
{
public temp() { }
public string a { get; set; }
public string b { get; set; }
public string c { get; set; }
public DateTime dt { get; set; 开发者_如何学运维}
}
and in HTML
<asp:GridView ID="gv" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("a") %>' Font-Bold="true" /><br />
<asp:Label ID="Label2" runat="server" Text='<%# Eval("b") %>' Font-Italic="true" /><br />
<asp:Label ID="Label3" runat="server" Text='<%# Eval("dt") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
What I'm trying to avoid is repeat code so I can only use one unique TemplateField
I can accomplish this with 3 x GridView
, one per each day, but I'm really trying to simplify code as the Grid will be exactly the same (as the HTML code goes), just the DataSource changes.
Any help is greatly appreciated, Thank you.
use ListView for this.
You could create a custom template and supply that template three times, as in : http://msdn.microsoft.com/en-us/library/aa289501%28VS.71%29.aspx
精彩评论