自动填充固定行数的 GridView (转)
在有些开发实践中,有时候为了页面美观的需要,需要将GridView填充成固定行数的表格,下面这个方法实现了这种填充的功能。此方法可以处理自动产生列和模版列。注意:由于时间关系,没有实现对完全空白数据的填充,呵呵,如果需要,可以自己添加哈:)!
C#:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
// 计算数据,完全可以从数据看取得
ICollection CreateDataSourceByXianhuiMeng()
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr;
dt.Columns.Add(new System.Data.DataColumn("学生班级", typeof(System.String)));
dt.Columns.Add(new System.Data.DataColumn("学生姓名", typeof(System.String)));
dt.Columns.Add(new System.Data.DataColumn("语文", typeof(System.Decimal)));
dt.Columns.Add(new System.Data.DataColumn("数学", typeof(System.Decimal)));
dt.Columns.Add(new System.Data.DataColumn("英语", typeof(System.Decimal)));
dt.Columns.Add(new System.Data.DataColumn("计算机", typeof(System.Decimal)));
for (int i = 0; i < 8; i++)
{
System.Random rd = new System.Random(Environment.TickCount * i); ;
dr = dt.NewRow();
dr[0] = "班级" + i.ToString();
dr[1] = "【孟子E章】" + i.ToString();
dr[2] = System.Math.Round(rd.NextDouble() * 100, 2);
dr[3] = System.Math.Round(rd.NextDouble() * 100, 2);
dr[4] = System.Math.Round(rd.NextDouble() * 100, 2);
dr[5] = System.Math.Round(rd.NextDouble() * 100, 2);
dt.Rows.Add(dr);
}
System.Data.DataView dv = new System.Data.DataView(dt);
return dv;
}
// 设置每页显示的行数
int TotalRowCount = 12;
// 自动填充的行数
int numCount = 0;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
GridView1.DataSource = CreateDataSourceByXianhuiMeng();
GridView1.DataBind();
}
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
// 计算自动填充的行数
numCount++;
}
if (e.Row.RowType == DataControlRowType.Footer)
{
// 计算完毕,在此添加缺少的行
int toLeft = TotalRowCount - numCount;
int numCols = GridView1.Rows[0].Cells.Count;
for (int i = 0; i < toLeft; i++)
{
GridViewRow row = new GridViewRow(-1, -1, DataControlRowType.EmptyDataRow, DataControlRowState.Normal);
for (int j = 0; j < numCols; j++)
{
TableCell cell = new TableCell();
cell.Text = " ";
row.Cells.Add(cell);
}
GridView1.Controls[0].Controls.AddAt(numCount + 1 + i, row);
}
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>自动填充固定行数的 GridView</title>
</head>
<body>
<form id="form1" runat="server">
<asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound"
Font-Size="12px" CellPadding="3">
<HeaderStyle BackColor="#EDEDED" />
<Columns>
<asp:TemplateField HeaderText="模版列">
<ItemTemplate>
<%#Eval("学生姓名") %>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</form>
</body>
</html>
转载于:https://www.cnblogs.com/zpylh/articles/1033409.html
自动填充固定行数的 GridView (转)相关推荐
- ReportViewer单据票据打印,自动分页,每页显示固定行数,每页都显示表头
报表工具用来用去,其实还是微软自带的ReportViewer比较轻量好用,一般需求完全够用.只是由于不常用,总会有解决一个问题过段时间又忘了怎么解决的问题.索性整理一下,当作笔记了. 在票据打印的时候 ...
- Excel按照固定行数拆分为多个文件
工作需要,需要把Excel按照固定行数拆分,生成多个Excel. 1.打开Excel,鼠标不要任何选择.按"Alt"+"f11". 在sheet1贴上以下代码, ...
- 打印倒三角形——固定行数与键盘输入行数
打印倒三角形 一.固定行数-5行 思路:将整个三角形分成三部分,图中已分别用1.2.3标明.代码中要使用3个for循环,第一个for循环打印内容以"空格"形式展示,即左边的直角三角 ...
- excel按照固定行数拆分多个
1 背景: 工作需要,需要把Excel按照固定行数拆分. 解决办法: 1. 生成是提前处理: 简单来说就是按照行数生成多个Excel. 大概逻辑如下: if(list.size< limit) ...
- Java实现矩阵运算——矩阵乘法、矩阵转置、自动填充矩阵行
在做大数据或人工智能开发的过程做难免会遇到矩阵运算,本文在这里给大家实现一个简单的矩阵运算,请看下代码: package test;/*** 矩阵运算* * @author Administrator ...
- excel中自动填充很多行
当在EXCEL中有多行需要自动填充时,例如从B1-B5000填充公式=(A1-15)/1000, 可以先选择B1,即填充内容,Ctrl+C: 然后,选择B2,将表格拉至B5000位置,按住shift键 ...
- Android TextView,EditText要求固定行数自动调整TextSize
最近项目有个需求要求文本最多显示3行,继续输入则字体变小,删除已经输入的文字,那么字体变大,不管变大变小都不能超过3行.网上怎么找也找不到相关的解决方案,自己动手,丰衣足食了! 说一下算法思路,后面给 ...
- 在 GitLab 中自动统计代码行数
在 GitLab 中,你可以在项目的 "Settings" 页面中找到 "Repository statistics" 选项.点击 "Reposito ...
- oracle列转行 空行,Oracle 行转列(不固定行数的行转列,动态)(转)
SQLSERVER :行列转换例子: http://www.cnblogs.com/gaizai/p/3753296.html#_labelFour 1. Oracle 11g之后新增了行列转换的函 ...
- FastReport报表固定行不足补空行且每页小计最后一页合计
1.报表设计器内添加一个页首PageHeader,用于添加报表的表头: 2.在页首区域添加几个带边框的Memo,把每个Memo靠在一起形成报表表头: 3.添加一个栏首: 4.添加一个主数据Master ...
最新文章
- LLVM与Clang局部架构与语法分析
- 干掉SQL中的like,我用es后运营小姐姐们都说好快!
- WPF Dispatcher介绍
- 分享2018年陆陆续续读过的书-附书单
- php mysql读取数组_php实现通用的从数据库表读取数据到数组的函数实例
- abp vnext2.0之核心组件模块加载系统源码解析
- php 秒杀并发怎么做,PHP实现高并发下的秒杀功能–Laravel
- JS数组的需要注意的问题
- 织梦DeDeCMS友情链接文字显示不全
- 【Tomcat】Tomcat下设置项目为默认项目
- 《读编程珠玑有感》——细节处见技术
- java实现打印菱形(任意输入数字打印任意阶菱形)
- 安卓开发 JAVA环境配置
- BigGAN(2019)
- chronodex怎么用_滴答清单使用全攻略:如何把手帐搬到滴答清单上,提升效率?...
- python四级是什么水平_四级能过的水平大概什么水平?
- 微信小程序wx.getUserInfo获取用户所在地区将拼音转换为中文的方法
- 2019计算机考研各科目时间安排,2019考研时间安排
- Unraid安装Transmission 超简单(2022/10/21)
- 数说“德尔塔”病毒,数据分析展示变异新冠毒株的传播情况
热门文章
- JQuery时间轴timeline插件的学习-Lateral On-Scroll Sliding with jQuery+technotarek / timeliner
- python全栈_010_Python3基本数据类型--元组
- 从环境搭建探讨做事的方法
- action属性注入为null
- [Android] Android开机启动Activity或者Service方法
- 把DamnSmallLinux(DSL)安装到硬盘(虚拟机)并安装GCC
- 解决在DHCP环境下私自指定IP和私自搭建DHCP服务器的方法
- FLStudio20.8中文版水果萝卜编曲 新增中文语言
- ImageView的属性android:scaleType作用
- 腾讯二面:引入RabbitMQ后,你如何保证全链路数据100%不丢失 ?