我拿到一个这样的需求,我暂且叫它分层gridview吧,如下:
id name order product
1 wang od_1 pen
paper
od_2 car
2 zhan od_1 mouse
shoeswang下面有两个订单od_1和od_2,而od_1下又有两个产品pen和paper,od_2下有一个产品car,这是一个层结构,或者叫多叉树结构,现在需要用gridview显示出来,请问有什么好的方法显示出这样的结构,我想到的是嵌套gridview,不过貌似很麻烦的
id name order product
1 wang od_1 pen
paper
od_2 car
2 zhan od_1 mouse
shoeswang下面有两个订单od_1和od_2,而od_1下又有两个产品pen和paper,od_2下有一个产品car,这是一个层结构,或者叫多叉树结构,现在需要用gridview显示出来,请问有什么好的方法显示出这样的结构,我想到的是嵌套gridview,不过貌似很麻烦的
不是很麻烦!只要把传值弄明白了,就解决了
拼table~
都说过了。
2. GridView嵌套GridView;可以按需求确定嵌套层数;
{
int i = 0, rowSpanNum = 1;
while (i < _gv.Rows.Count - 1)
{
GridViewRow gvr = _gv.Rows[i];
for (++i; i < _gv.Rows.Count; i++)
{
GridViewRow gvrNext = _gv.Rows[i];
if (gvr.Cells[cellNum].Text == gvrNext.Cells[cellNum].Text)
{
gvrNext.Cells[cellNum].Visible = false;
rowSpanNum++;
}
else
{
gvr.Cells[cellNum].RowSpan = rowSpanNum;
rowSpanNum = 1;
break;
} if (i == _gv.Rows.Count - 1)
{
gvr.Cells[cellNum].RowSpan = rowSpanNum;
}
}
}
}
使用如下,在绑定后调用该函数,cellNum是列编号,支不支持动态生成列就不知道了 gv.DataBind(); GroupRows(gv, 0);
GroupRows(gv, 1);