❉❉❉❉❉❉❉❉gridview表格合并问题❉❉❉❉❉❉❉❉❉❉

Xiaomillet 2011-06-02 05:16:52
gridview表格合并问题:问题该如何去循环合并它?

效果如下图,





...全文
215 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovebibi168 2011-06-03
  • 打赏
  • 举报
回复

public static void GroupRows(GridView GridView1, int cellNum)
{
int i = 0, rowSpanNum = 1;
while (i < GridView1.Rows.Count - 1)
{
GridViewRow gvr = GridView1.Rows[i];
for (++i; i < GridView1.Rows.Count; i++)
{
GridViewRow gvrNext = GridView1.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 == GridView1.Rows.Count - 1)
{
gvr.Cells[cellNum].RowSpan = rowSpanNum;
}
}
}
}

小豪 2011-06-02
  • 打赏
  • 举报
回复
MARK~
暖枫无敌 2011-06-02
  • 打赏
  • 举报
回复
Repeater嵌套,通过模板列可以实现。
外层Repeater的第一列显示你的名字(name)字段值,然后第二列里嵌套Repeater,这个Repeater里显示你的A1、A2、A3、A4字段值即可。


<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#Eval("name")%></td>
<td>
<asp:Repeater ID="Repeater2" runat="server">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#Eval("A1")%></td>
<td><%#Eval("A2")%></td>
<td><%#Eval("A3")%></td>
<td><%#Eval("A4")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</td>
<tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>

public void Page_Load(object sender,EventArgs e)
{
if(!IsPostBack)
{
//绑定你的第一个Repeater
...
Repeater1.DataSource = ds;
Repeater1.DataBind();
}
}


protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rpt = (Repeater)e.Item.FindControl("Repeater2");
...
rpt.DataSource = ds;
rpt.DataBind();
}
}
zhulong1111 2011-06-02
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wxr0323 的回复:]
引用 7 楼 xiaomillet 的回复:

引用 5 楼 wxr0323 的回复:
你说的是多表头效果吗?

参考


表 行之间合并, 我那个张三 那些数据都是关联他的所以像这样来进行排版,清晰些

用table 来拼 或者DataList Repeater
[/Quote]mark
子夜__ 2011-06-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xiaomillet 的回复:]

引用 5 楼 wxr0323 的回复:
你说的是多表头效果吗?

参考


表 行之间合并, 我那个张三 那些数据都是关联他的所以像这样来进行排版,清晰些
[/Quote]
用table 来拼 或者DataList Repeater
Rock870210 2011-06-02
  • 打赏
  • 举报
回复
这个用JS去实现,
GridView最后生成无非就是Table,可以在页面加载完成后用JS动态添加一列
看这里
上诉示例是第一列挪动到最后一列,类似原理,动态添加一列到开始,然后设定rowSpan属性即可
chen380008006 2011-06-02
  • 打赏
  • 举报
回复
打错字了 如果相同行的话 跨行数+1
  • 打赏
  • 举报
回复
这个很复杂。。
建议用HTML或者RP
chen380008006 2011-06-02
  • 打赏
  • 举报
回复
如果 A1 前面的那个单元格也是张三的话 可以写个简单的判断 判断第二行的值是否与第一行相同 如果相同 行话的num+1。希望对楼主有帮助 嘿嘿
Xiaomillet 2011-06-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wxr0323 的回复:]
你说的是多表头效果吗?

参考
[/Quote]

表 行之间合并, 我那个张三 那些数据都是关联他的所以像这样来进行排版,清晰些
天下在我心 2011-06-02
  • 打赏
  • 举报
回复
gridview嵌套加css控制,应该可以实现。
子夜__ 2011-06-02
  • 打赏
  • 举报
回复
你说的是多表头效果吗?

参考
moduofanchen 2011-06-02
  • 打赏
  • 举报
回复


学习 学习
继续泛泛 2011-06-02
  • 打赏
  • 举报
回复
用RowDataRowBind()事件,在绑定时执行
Xiaomillet 2011-06-02
  • 打赏
  • 举报
回复
用table随便画了一个,比较粗糙
蝶恋花雨 2011-06-02
  • 打赏
  • 举报
回复
用这个不太好实现。建议用rp dl

62,046

社区成员

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

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

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

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