datagrid合并行内单元格后如何交替变色,小弟在线急等!!!

jgqr 2008-07-04 10:01:34
小弟最近写了个程序,其中的查询界面要求同一人的几行记录合并,不同人的记录之间交替变色,合并的函数已写完,如下:
Private Sub Unite(ByVal dgr As DataGrid)
Dim i As Integer
Dim LastType As String
Dim LastCell As Integer

If dgr.Items.Count > 0 Then
LastType = dgr.Items(0).Cells(0).Text
dgr.Items(0).Cells(0).RowSpan = 1
LastCell = 0
j = 0
For i = 1 To dgr.Items.Count - 1
If dgr.Items(i).Cells(0).Text = LastType Then
dgr.Items(i).Cells(0).Visible = False
dgr.Items(LastCell).Cells(0).RowSpan += 1
Else
LastType = dgr.Items(i).Cells(0).Text
LastCell = i
dgr.Items(i).Cells(0).RowSpan = 1
End If
Next
End If
End Sub

现求函数改动能完成交替变色的功能。
请写出详细代码,小弟在此拜谢!!!
...全文
132 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jgqr 2008-07-10
  • 打赏
  • 举报
回复
没有人能回答俺的问题吗?
jgqr 2008-07-07
  • 打赏
  • 举报
回复
有没有哪位具体写段代码?
sdcgmars 2008-07-04
  • 打赏
  • 举报
回复
我不知道在VB.NET里是怎么样,我用的是C#.不过应该差不多.
你可以在数据绑定时设置颜色的,如果是用的GridView,可以使用GridView1_RowDataBound事件来写,可以精确到每一行的颜色的!
ejoe313 2008-07-04
  • 打赏
  • 举报
回复
1、先用SQL来处理一下:
一个表是你要查询的结果(按UserID排序),另外新建一个临时表,把结果里的User取出来给他们排个号(1,2,3……),
两个表连接在一起,以该序号列排序,这样在你查询的结果集里就多出来一个人的序号列;
2、在Grid里,隐藏该序号列,循环判断,序号列是奇数的一种颜色,序号列是偶数的另一种颜色。
cowboy0000 2008-07-04
  • 打赏
  • 举报
回复
我大概看了下你是根据上个单元格信息和当前单元格是否相同,相同则隐藏当前单元格。这样来实现合并,那你在相同内容时设定该行颜色一致,等下条数据时肯定单元格内容不同此时变色就可以了。

16,549

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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