请教关于GridView的问题

williamwang8187 2009-04-13 11:02:34
有一个GridView 是按编号分组显示
编号 产品 数量
0001 p1 10
------------------
0001 p2 2
------------------
0002 p1 1
------------------
0002 p2 6
现在需要实现
编号 产品 数量

p1 10
0001 ------------
p2 2
------------------
p1 1
0002 -------------
p2 6
数据源是分组的,如何实现这种效果请教大家
...全文
200 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
陌上花花 2009-04-13
  • 打赏
  • 举报
回复
不是太明白。
levinstong 2009-04-13
  • 打赏
  • 举报
回复
接分
teerhu 2009-04-13
  • 打赏
  • 举报
回复
//合併相同數據的列
public void FormatGridView(int iCell, GridView gv)
{
string Site = "";
int iTempSite = -1;
int[] nsite = new int[5000];
int[] ndept = new int[5000];
foreach (GridViewRow gvr in gv.Rows)
{
if (!Site.EndsWith(gvr.Cells[iCell].Text.Trim() + ";"))
{
Site += gvr.Cells[iCell].Text.Trim() + ";";

iTempSite++;
}
else
{
gvr.Cells[iCell].Visible = false;
nsite[iTempSite] += 1;
}
}
iTempSite = 0;
foreach (GridViewRow gvr in gv.Rows)
{
if (gvr.Cells[iCell].Visible == true)
{
gvr.Cells[iCell].RowSpan = nsite[iTempSite] + 1;

iTempSite++;
}
}
}

在RowDataBound里調用,如FormatGridView(0,gridview1);就是合并第一行。
williamwang8187 2009-04-13
  • 打赏
  • 举报
回复
怎么没人知道呢?就是当编号相同时合并相同行!!!!
march22 2009-04-13
  • 打赏
  • 举报
回复
public static void GroupRows(GridView gv, int cellNum)
{
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;
}
}
}
}


放在RowDataBound里,如(this.gridview1,0)就是合并第一行。
moonshineidolon 2009-04-13
  • 打赏
  • 举报
回复
求助javascript来实现吧
takako_mu 2009-04-13
  • 打赏
  • 举报
回复
接分

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧