会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
陳龑(飛龍在天)
Get busy living, Or get busy dying.
博客园
首页
新随笔
联系
订阅
管理
合并DataGrid相同单元格
代码如下:
CombinColumns
#region
CombinColumns
private
void
CombinColumns(DataGrid dataGrid)
{
int
rowsCount
=
dataGrid.Items.Count;
for
(
int
i
=
rowsCount
-
1
; i
>
0
; i
--
)
{
int
colCount
=
dataGrid.Items[
0
].Cells.Count;
for
(
int
j
=
colCount
-
1
; j
>=
0
; j
--
)
{
int
span
=
dataGrid.Items[i].Cells[j].RowSpan;
if
(String.Equals(dataGrid.Items[i
-
1
].Cells[j].Text,dataGrid.Items[i].Cells[j].Text))
{
span
=
(span
==
0
?
1
: span);
span
+=
1
;
dataGrid.Items[i
-
1
].Cells[j].RowSpan
=
span;
dataGrid.Items[i].Cells[j].Visible
=
false
;
}
}
}
}
#endregion
次代码有以下缺点:1.单元格内容不能为模板列;
下面是转借别人的:
/**/
///
<summary>
///
used to merge cells
///
</summary>
///
<param name="dg">
datagrid will be merged
</param>
///
<param name="GroupColumn">
merged column
</param>
///
<param name="compareColumn">
basis column
</param>
private
void
spanRow(DataGrid dg,
int
GroupColumn,
int
compareColumn)
{
int
i
=
0
;
int
j
=
0
;
int
rowSpan;
string
strTemp
=
""
;
for
(i
=
0
;i
<
dg.Items.Count;i
++
)
{
rowSpan
=
1
;
strTemp
=
dg.Items[i].Cells[compareColumn].Text;
for
(j
=
i
+
1
;j
<
dg.Items.Count;j
++
)
{
if
(
string
.Compare(strTemp,dg.Items[j].Cells[compareColumn].Text)
==
0
)
{
rowSpan
+=
1
;
dg.Items[i].Cells[GroupColumn].RowSpan
=
rowSpan;
dg.Items[j].Cells[GroupColumn].Visible
=
false
;
}
else
{
break
;
}
}
i
=
j
-
1
;
}
}
posted @
2007-10-08 21:35
陳龑
阅读(
282
) 评论(
0
)
收藏
举报
刷新页面
返回顶部
公告