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
查看全文
相关阅读:
Convolutional Neural Network-week1编程题(一步步搭建CNN模型)
Coursera Deep Learning笔记 卷积神经网络基础
爬取b站周杰伦新歌mv弹幕 绘制词云
Coursera Deep Learning笔记 结构化机器学习项目 (下)
Golang-执行go get私有库提示”410 Gone“ 解决办法
golang常用的http请求操作
关于asyncio知识(四)
关于asyncio知识(二)
Python Every Class Needs a __repr__
关于asyncio知识(一)
原文地址:https://www.cnblogs.com/chinabc/p/1592952.html
最新文章
计算机相关会议排名(二)
主流chatbot机器人调研
python使用rdflib创建rdf,在jena fuseki上执行SPARQL查询
搭建Jena Fuseki并执行SPARQL查询
sqoop 测试 --hive-delims-replacement 参数
Hibernate获取数据java.lang.StackOverflowError
sqoop导入数据到hive中元数据问题
oracle学习创建和准备Oracle样例数据库
rm -rf python 实现 v0.1
javascript 匿名函数
热门文章
python中的目录递归的创建和目录及其下的文件递归的删除
python文件
python 读取大文件,按照字节读取
B站账号:皮一下很开心的豆子 https://space.bilibili.com/152063970
Convolutional Neural Network-week2编程题2(Residual Networks)
Convolutional Neural Network-week2编程题1(Keras tutorial
安装keras完整Ng作业
Coursera Deep Learning笔记 深度卷积网络
爬取江苏省预算公开 文件下载 【JS页面爬虫】
Convolutional Neural Network-week1编程题(TensorFlow实现手势数字识别)
Copyright © 2011-2022 走看看