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
查看全文
相关阅读:
spring 任务调度quartz
java增强型for循环
DateTimeFormat
Java的同步和异步
HTTP Status 400,400 (Bad Request)
com.mysql.jdbc.exceptions.jdbc4.MySQLDataException: '2.34435678977654336E17' in column '3' is outside valid range for the datatype INTEGER.
Servlet.service() for servlet [appServlet] in context with path [/item] threw exception [Request processing failed
mysql调优
Windows nexus 启动失败
NFS客户端访问行为相关的几个参数解释
原文地址:https://www.cnblogs.com/moss_tan_jun/p/1820870.html
最新文章
Android第二次作业
Android第一次作业
软件工程第一次作业
android第四次作业
1600802047 android 第三次作业(音乐播放器)
android第二次作业
Android第一次作业
软件工程第一次作业
docker 搭建 redis 主从模式
http://10.18.5.83:8080/ 浏览报错:A default document is not configured for the requested URL, and directory browsing is not enabled on the server
热门文章
RetrieveAttributeChangeHistoryRequest 检索对特定属性所做的全部更改
sqlserver查看表是否锁住
php中无参函数的RCE
php反序列化总结与学习
JWT(JSON web Token)
逗号拦截绕过
哈希长度拓展攻击
条件竞争(race condition)
图论算法
关于mysql初始化以及安全策略无法修改的问题
Copyright © 2011-2022 走看看