向datagrid中加横向 纵向的合计 (在datatable中实现,datatable间倒数据)
最终效果
如果实现??
protected System.Web.UI.WebControls.DataGrid DataGrid1;
/// <summary>
/// 数据来源
/// </summary>
DataSet CreateDataSource()
{
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn("名称", typeof(string)));
dt.Columns.Add(new DataColumn("Value1", typeof(Int32)));
dt.Columns.Add(new DataColumn("Value2", typeof(Int32)));
dt.Columns.Add(new DataColumn("Value3", typeof(Int32)));
dt.Columns.Add(new DataColumn("Value4", typeof(Int32)));
for (int i = 0; i < 10; i++)
{
dr = dt.NewRow();
dr[0] = i.ToString()+"名称";
dr[1] = i;
dr[2] = i+1;
dr[3] = i+2;
dr[4] = i+3;
dt.Rows.Add(dr);
}
DataSet MyData=new DataSet();
MyData.Tables.Add(dt);
return MyData;
}
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
DataSet MyData=CreateDataSource();
// DataGrid1.DataSource= MyData;
// DataGrid1.DataBind();
DataTable MyTable=new DataTable();
DataColumn myColum;
foreach( DataColumn NowDataColumn in MyData.Tables[0].Columns)
{
myColum=new DataColumn();
myColum.DataType=NowDataColumn.DataType;
myColum.ColumnName=NowDataColumn.ColumnName;
MyTable.Columns.Add(myColum);
}
myColum=new DataColumn();
myColum.DataType=System.Type.GetType("System.Int32");
myColum.ColumnName="每行合计";
MyTable.Columns.Add(myColum);
DataRow AcountRow;
int DataColumns=MyData.Tables[0].Columns.Count;
foreach( DataRow NowRow in MyData.Tables[0].Rows)
{
AcountRow=MyTable.NewRow();
AcountRow.ItemArray=NowRow.ItemArray;
//每行合计
GetRowAccount(AcountRow,1,5,DataColumns);
MyTable.Rows.Add(AcountRow);
}
//生成的合计
AcountRow=MyTable.NewRow();
AcountRow[0]="竖列合计";
for(int count=1;count<MyTable.Columns.Count;count++)
foreach (DataRow NowRow in MyTable.Rows)
{
if(!AcountRow.IsNull(count))
{
if (!AcountRow.IsNull(count) )
AcountRow[count]= Convert.ToInt32(AcountRow[count])+Convert.ToInt32(NowRow[count]);
}
else AcountRow[count]=NowRow[count];;
}
MyTable.Rows.Add(AcountRow);
DataGrid1.DataSource=MyTable;
DataGrid1.DataBind();
}
/// <summary>
/// 每行合计
/// </summary>
private void GetRowAccount(DataRow AcountRow,int begincol,int endcol,int accountcol)
{
for(int i=begincol;i<endcol;i++)
{
if(!AcountRow.IsNull(accountcol))
{
if ( !AcountRow.IsNull(i) )
AcountRow[accountcol]= Convert.ToInt32(AcountRow[accountcol])+Convert.ToInt32(AcountRow[i]);
}
else AcountRow[accountcol]=AcountRow[i];
}
}
缺点: 把所有的数据都访问过 肯定效率不是很好
还有其他的办法 如果有更好的方法 请告诉我 。
转载于:https://www.cnblogs.com/neozhu/archive/2005/02/01/100259.html
向datagrid中加横向 纵向的合计 (在datatable中实现,datatable间倒数据)相关推荐
- Web前端笔记-js中加载图片文件(vue cli中同样适用)
这里主要是在vue cli项目中加载图片的时候会出现304,特别是使用自己写的js加载图片的时候,此博文记录了解决办法. 在js文件中引用文件 import img from '@/assets/im ...
- 在php代码中加视频,php – 如何在laravel代码中嵌入视频
我正在开发一个项目,我将youtube视频链接存储在数据库中,然后我检索这些链接并使用刀片模板引擎我尝试将它们嵌入到页面中.我使用循环将视频放在页面中.出于某种原因,我没有在浏览器中收到任何视频.它覆 ...
- 在linux中加用户,Ubuntu使用教程——在Ubuntu中添加用户
Ubuntu是一个多用户操作系统.多用户操作系统意味着多个用户可以通过独立的.个人的HOME文件夹,文件和设置访问计算机.用户A可以登录并修改他/她自己的配置文件而不会影响用户B的配置文件. 因此,你 ...
- 在access窗体中加图片_如何在Access窗体中显示指定路径的图片
在Access中,如果把图形对象以OLE格式的字段保存,那么在窗体中可以直接显示出图片来.但是这样做有以下不足:一.需要将图片逐一插入到表中,工作量太大.二.使数据库文件变得庞大.三.相同的图片文件, ...
- html中加一个空行,浅谈HTML代码中的空格和空行
HTML 代码中的所有连续的空格或空行(换行)都会被显示为一个空格. 例子1:(文本内容中的连续空格) 代码 XML/HTML Code复制内容到剪贴板 这段文本中,输入连续的空格 ...
- html中加多个空格,如何在HTML中插入空格
通常情况下,我们用空格键来打出多个空格,而在编写代码时,通过空格键.Tab键以及回车键打出的空格,都会被HTML(超文本标记语言)自动忽略.HTML将这样的键视为空白字符,并显示为单个空白间隔.尽管C ...
- vue中的横向排列_如何让div中的内容横向排列
展开全部 一.问题可能涉及到了浮动和行内元素两个知识点,首先需要div布局,写一个大的div作为父级盒子,里e5a48de588b662616964757a686964616f313333633839 ...
- html表格中加背景图片,关于在HTML表格中插入背景图片图片重复显示的问题
先来一段有问题的代码(其实也不能说是有问题,毕竟语法上是没问题的,只是出来的效果不是我们想要的--我们假设预期的效果是背景图片只填充一次而不是多次.) 设定表格的背景图像 姓名 张三 性别 男 年龄 ...
- 在C++中加载TorchScript模型
在C++中加载TorchScript模型 本教程已更新为可与PyTorch 1.2一起使用 顾名思义,PyTorch的主要接口是Python编程语言.尽管Python是合适于许多需要动态性和易于迭代的 ...
- 《R数据可视化手册》一1.4 从Excel文件中加载数据
本节书摘来自异步社区<R数据可视化手册>一书中的第1章,第1.4节,作者 [美]Winston Chang,更多章节内容可以访问云栖社区"异步社区"公众号查看 1.4 ...
最新文章
- 神经网络:卷积神经网络
- TCP协议三次握手连接四次握手断开和DOS攻击
- JavaSE(七)——Scanner类、String类
- 消息发送和接收基本应用
- ios 防止按钮快速点击造成多次响应的避免方法。
- 你为什么不爱发朋友圈了?
- macos安装vscode_VS Code 代码编辑器入门指南:核心组件与概念
- 时域补零对于DFT谱的影响
- [原创].NET 业务框架开发实战之六 DAL的重构
- 美图技术博客之地理空间距离计算优化
- c语言边沿与内芯的差noj题目,西工大noj答案完整版148.doc
- 传统MVP用在项目中是真的方便还是累赘?
- 从1.6W名面试者中收集的Java面试题精选汇总(内附知识脑图)
- python内存泄漏解决方案_Python内存泄漏和内存溢出的解决方案
- 010 Editor for Mac(十六进制编辑器)
- 同域下iframe父页面和子页面调用
- VS C++ def
- 相对传统桌面设计器,在线报表设计器价值何在?
- html表格制作步骤详解,HTML网页表单制作详细讲解
- 沐神点赞!同济子豪兄精读AI经典论文,包括图像分类、目标检测、生成对抗网络、轻量化卷积神经网络等领域...
热门文章
- ARM64体系结构与编程之cache必修课(中)
- (转)DPDK内存管理05 -- rte_mbuf
- 【python入门到实践1】简介和环境搭建
- Linux进程的管理与调度(一)--- Linux进程描述符task_struct结构体详解
- 解决PLSQL和输入法或QQ冲突问题
- AVL树原理理解:旋转与平衡
- go 安装mysql驱动_window下GO语言安装mysql驱动
- 与7无关的数(前缀和)
- 堆(基本介绍,代码实现,以及例题)
- JetBrains(Intellij, pycharm)多行编辑模式