zoukankan
html css js c++ java
GridView合并行代码
图:
Code
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(
!
IsPostBack)
{
DataTable oDataSource
=
CreateTable();
DataView oDV
=
oDataSource.DefaultView;
oDV.Sort
=
"
StudentNo
"
;
GvStudent.DataSource
=
oDV;
GvStudent.DataBind();
}
}
private
DataTable CreateTable()
{
DataTable oDT
=
new
DataTable();
oDT.Columns.Add(
"
StudentNo
"
);
oDT.Columns[
0
].DataType
=
typeof
(System.Int32);
DataColumn oDC
=
new
DataColumn(
"
StudentName
"
,
typeof
(System.String));
oDT.Columns.Add(oDC);
oDT.Columns.Add(
"
Do1
"
);
oDT.Columns.Add(
"
Do2
"
);
DataRow oDR
=
oDT.NewRow();
oDR[
0
]
=
1001
;
oDR[
"
StudentName
"
]
=
"
小张
"
;
oDR[
"
Do1
"
]
=
"
学国学
"
;
oDR[
"
Do2
"
]
=
"
学英语
"
;
oDT.Rows.Add(oDR);
DataRow oDR1
=
oDT.NewRow();
oDR1[
"
StudentNo
"
]
=
1004
;
oDR1[
1
]
=
"
小李
"
;
oDR1[
2
]
=
"
闲着
"
;
oDR1[
3
]
=
"
继续闲着
"
;
oDT.Rows.Add(oDR1);
DataRow oDR2
=
oDT.NewRow();
oDR2[
0
]
=
1001
;
oDR2[
"
StudentName
"
]
=
"
小张
"
;
oDR2[
"
Do1
"
]
=
"
学英语
"
;
oDR2[
"
Do2
"
]
=
"
学法语
"
;
oDT.Rows.Add(oDR2);
return
oDT;
}
int
iPreStudentNo, iCurrentStudentNo;
int
iPreRowNum;
int
iMergeBegin
=
2
, iMergeEnd
=
3
;
protected
void
GvStudent_RowDataBound(
object
sender, GridViewRowEventArgs e)
{
if
(e.Row.RowType
==
DataControlRowType.DataRow)
{
DataRowView drv
=
e.Row.DataItem
as
DataRowView;
GridViewRow oRow
=
e.Row;
int
.TryParse(drv[
"
StudentNo
"
].ToString(),
out
iCurrentStudentNo);
if
(oRow.RowIndex
>
0
)
{
//
第二条记录才进行是否合并
if
(iCurrentStudentNo
!=
iPreStudentNo)
{
if
(oRow.RowIndex
-
iPreRowNum
>
1
)
{
AddRowSpanForColumns(GvStudent.Rows[iPreRowNum], iMergeBegin, iMergeEnd, oRow.RowIndex
-
iPreRowNum);
}
iPreStudentNo
=
iCurrentStudentNo;
iPreRowNum
=
oRow.RowIndex;
}
else
{
RemoveColumnsFromRow(oRow, iMergeBegin, iMergeEnd);
}
}
else
{
//
第一条记录
iPreStudentNo
=
iCurrentStudentNo;
iPreRowNum
=
oRow.RowIndex;
}
}
}
Combination Columns
#region
Combination Columns
private
void
AddRowSpanForColumns(GridViewRow oRow,
int
iIndexOfColumnBegin,
int
iIndexOfColumnEnd,
int
iRowspan)
{
//
给上一个相同的加上Span
for
(
int
i
=
0
; i
<
oRow.Cells.Count; i
++
)
{
if
(i
<
iIndexOfColumnBegin
||
i
>
iIndexOfColumnEnd)
{
oRow.Cells[i].RowSpan
=
iRowspan;
}
}
}
/**/
///
<summary>
///
移除列,进行合并
///
</summary>
///
<param name="oRow"></param>
///
<param name="iIndexOfColumnBegin"></param>
///
<param name="iIndexOfColumnEnd"></param>
private
void
RemoveColumnsFromRow(TableRow oRow,
int
iIndexOfColumnBegin,
int
iIndexOfColumnEnd)
{
for
(
int
i
=
0
; i
<
oRow.Cells.Count; i
++
)
{
if
(i
<
iIndexOfColumnBegin
||
i
>
iIndexOfColumnEnd)
{
oRow.Cells.RemoveAt(i);
i
--
;
iIndexOfColumnBegin
--
;
iIndexOfColumnEnd
--
;
}
}
}
#endregion
查看全文
相关阅读:
Selenium 2自动化测试实战
Python学习笔记整理(python 3)
Python编程中出现ImportError: bad magic number in 'numpy': b'x03xf3 '
收集的一些表单常用的正则表达式。
转载的一篇博客,感觉不错,自我感觉很到位,来自 http://www.cnblogs.com/laizhihui/p/5810965.html
闲来无写的,就是中间有一条小细线,求大神指点。
自己总结的有关PHP一些基本知识和一些常见的js问题
不经意间看到的东西,感觉不错(转载)。
无束缚版贪吃蛇(就问你爽不爽)
小图局部放大效果(图片的话就自己找一个吧,记得是一张图片用两次,不是两张图片,而且你的图片不一定与我一样,需改一下放大的尺寸)
原文地址:https://www.cnblogs.com/moss_tan_jun/p/1820870.html
最新文章
CTS FAIL(一)
Android 4.4 音量调节流程分析(二)
Android 4.4 音量调节流程分析(一)
软件开发过程模型
好用的网站收集
Linux目录结构
Linux 操作系统介绍
Linux 常用指令
数据库常用SQL语句
selenium 常用API
热门文章
selenium 元素定位
浏览器,图片格式及特点
常见的软件架构
Python数据分析基础教程
Python数据分析基础PDF
Python开发技术详解PDF
Python网络数据采集PDF
Python科学计算PDF
Python金融大数据分析PDF
Python开发实战PDF
Copyright © 2011-2022 走看看