我使用Gridview有一段时间了,我注意到创建一个简单的表并用日期f.e.填充它非常容易
ID Name Surename Phone .....
1 Tom Tomtom 111122233
2 Vic VicVic 21231231
3 Rik RikRik 123545343
所以这里我们有一个简单的网格视图,有三条记录,每条记录都在一行中!我需要的是把一个记录信息放在三行,比如这里:
ID Name Surename Phone .....
/ 1 Tom Tomtom 111122233
record1 { Additional info: blablabla
More info: xxxxx
/ 2 Vic VicVic 21231231
record2 { Additional info: blablabla
More info: xxxxx
/ 3 Rik RikRik 123545343
record3 { Additional info: blablabla
More info: xxxxx
所以这里我们有一个网格视图,这里我们用三行显示一条记录的信息。。。那么如何做到这一点呢?
当我有一个数据对象时,我用这个代码来填充我的网格视图,但这只适用于单行记录
private void grdMyGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
MyObject ObjectEl = (MyObject)e.Row.DataItem;
e.Row.Cells[0].Text = ObjectEl.ID.ToString();
e.Row.Cells[1].Text = ObjectEl.Name.ToString();
e.Row.Cells[2].Text = ObjectEl.Surename.ToString();
LinkButton lbtConfigure = (LinkButton)e.Row.Cells[3].FindControl("lbtConfigure");
lbtConfigure.CommandArgument = Convert.ToString(ObjectEl.ID);
}
}
在gridview中可以进行这样的行模板化,但listview控件更适合这种类型的数据。
看看这里,这会让你开始。
http://weblogs.asp.net/scottgu/archive/2007/08/10/the-asp-listview-control-part-1-building-a-product-listing-page-with-clean-css-ui.aspx
您可以为此目的使用模板。在表头模板和项目模板中插入表格(根据您的需要)。在表中可以插入标签。将标签与数据表中的列绑定。(Eval("列名"))。现在你得到了你所期望的网格视图。