关于GridView自动统计的问题

问题描述

现想利用GridView进行自动统计,并在页脚把结果显示出来。我的想法是先设两个变量:x,y然后通过if语句判断,如果GridView中特定的那列(如cell[4])的文字==“按时”,则x自增1,如果文字==“延期”,则y自增1。最后统计结果。思路是有了,但具体的代码怎么写小弟不是非常清楚,因为自己刚学不久,请大家帮忙把上面思路的代码写一下,特别是那个if语句该怎么写,谢谢!!

解决方案

解决方案二:
请大家帮帮忙吧,小弟只有这么点分了,不要嫌少哈!
解决方案三:
在ROWDATABOUND事件里统计编写,看看MSDN关于此事件的介绍。
解决方案四:
intx=0;inty=0;protectedvoidGridView1_RowCreated(objectsender,GridViewRowEventArgse){switch(e.Row.Cells[4].Text){case"按时":x+=1;break;case"延期":y+=1;break;default:break;}}

解决方案五:
谢谢shoushii!!但我运行后出现如下错误:“指定的参数已超出有效值的范围。参数名:index”这是为什么呢??
解决方案六:
应该写在ROWDATABOUND事件里,因为ROWCREATED事件,此时数据还没加载强烈建议你看看MSDNROWDATABOUND
解决方案七:
谢谢only-endure!!但我是写在RowDataBound里的呀。把我的代码粘贴如下:intx=0;inty=0;protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse){switch(e.Row.Cells[4].Text){case"按时完工":x+=1;break;case"延期完工":y+=1;break;default:break;}//自动统计if(e.Row.RowType==DataControlRowType.Footer){floatf=((float)(x+y)/GridView1.Rows.Count)*100;Stringstr=String.Format("{0:f1}",f);e.Row.Cells[3].Text=str+"%";e.Row.Cells[5].Text=x.ToString();e.Row.Cells[7].Text=y.ToString();}}

解决方案八:
现在是这样的情况:如果照shoushii的方法,代码如下:intx=0;inty=0;protectedvoidGridView1_RowCreated(objectsender,GridViewRowEventArgse){switch(e.Row.Cells[4].Text){case"按时完工":x+=1;break;case"延期完工":y+=1;break;default:break;}}protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse){//自动统计if(e.Row.RowType==DataControlRowType.Footer){floatf=((float)(x+y)/GridView1.Rows.Count)*100;Stringstr=String.Format("{0:f1}",f);e.Row.Cells[3].Text=str+"%";e.Row.Cells[5].Text=x.ToString();e.Row.Cells[7].Text=y.ToString();}

出现的结果是x,y没有自增,在最后的统计结果中仍然是0.若照only-endure的方法,代码已在上面,出现的结果是“指定的参数已超出有效值的范围。参数名:index”这是为什么呢??
解决方案九:
还要判断行的类型。看看MSDNif(e.Row.RowType==DataControlRowType.DataRow){switch(e.Row.Cells[4].Text){case"按时完工":x+=1;break;case"延期完工":y+=1;break;default:break;}晕,我不是说过了么,这些数据的东西都放在ROWDATABOUND事件中。。。。。。。。。。。。。
解决方案十:
请原来我的无知吧!5555,现在时间紧,看MSDN有点没头绪的感觉。请“提刑官”再帮帮忙吧。我把代码修改如下,但统计结果还是为0,没有变化啊。是不是那个switch(e.Row.Cells[4].Text)语句有问题?我的那列用的是Label控件,SQL数据库中的格式为nvarchar,这有关系吗??盼复,谢谢!!intx=0;inty=0;protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse){if(e.Row.RowType==DataControlRowType.DataRow){//自动统计switch(e.Row.Cells[4].Text){case"按时完工":x+=1;break;case"延期完工":y+=1;break;default:break;}}elseif(e.Row.RowType==DataControlRowType.Footer){floatf=((float)(x+y)/GridView1.Rows.Count)*100;Stringstr=String.Format("{0:f1}",f);e.Row.Cells[3].Text=str+"%";e.Row.Cells[5].Text=x.ToString();e.Row.Cells[7].Text=y.ToString();}}

解决方案十一:
也有可能是你的列错了,索引改一改试试。索引是从零开始数起的。第一列是0,第二列是1。。。
解决方案十二:
跟踪一下,看看整个流程。
解决方案十三:
加个trim试下intx=0;inty=0;protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse){if(e.Row.RowType==DataControlRowType.DataRow){//自动统计//kenupdateswitch(e.Row.Cells[4].Text.Trim()){case"按时完工":x+=1;break;case"延期完工":y+=1;break;default:break;}}if(e.Row.RowType==DataControlRowType.Footer){floatf=((float)(x+y)/GridView1.Rows.Count)*100;Stringstr=String.Format("{0:f1}",f);e.Row.Cells[3].Text=str+"%";e.Row.Cells[5].Text=x.ToString();e.Row.Cells[7].Text=y.ToString();}}

时间: 2024-10-06 11:50:01

关于GridView自动统计的问题的相关文章

excel2010自动统计包含常量的单元格数量方法

  excel2010自动统计包含常量的单元格数量方法 1.例如图中表格中有3个包含常量的单元格.可以让excel自动统计显示出该数量. 2.点击excel2010菜单栏中的"查找和选择". 3.点击"定位条件". 4.在定位条件中点选"常量". 5.点击"确定"按钮. 6.点击后,在excel窗口的右下角会显示出自动统计后的数量. 以上就是excel2010自动统计包含常量的单元格数量方法介绍,操作很简单的,大家按照上面步骤

Excel做自动统计课时数地多彩课程表

用Excel我们可以让课程表中不同的学科自动采用不同的填充颜色显示,并自动统计各学科的总课时数.这样,看起来一目了然. 一.不同学科,不同颜色 这要用到条件格式.选取课程表所在单元格区域.点击菜单命令"格式→条件格式",打开"条件格式"对话框.在"条件1"下方的下拉列表中,选择"单元格数值",然后在右侧的下拉列表中选择"等于",并在最右侧的输入框中输入"="数学""(

Excel怎么自动统计学生成绩?

  这个自动统计表可以自动统计最高分.最低分.总分.平均分.名次等数据信息,还可以根据自定条件以不同的颜色显示分数.自动统计表做好以后还可以保存成模板,以便以后使用.文章末尾提供.xls文件供大家下载参考. 每到学期结束时,教师的一项重要工作就是要统计学生的成绩,在电脑逐步普及的今天,我们就把这项繁杂的工作交给Excel去自动完成吧. 涉及函数:AVERAGE.COUNTIF .IF.ISERROR.MAX.MIN.RANK.SUM 1.启动Excel,同时选中A1至K1单元格,按"格式&quo

请教,sql能不能设置一列,自动统计另一张表每个数据的个数?

问题描述 请教,sql能不能设置一列,自动统计另一张表每个数据的个数? 请教,sql能不能设置一列,自动统计另一张表每个数据的个数? 例如: 表a id(部门),zw(职务),name(姓名) 人力部 经理 张三 人力部 副经理 李四 人力部 副经理 王五 开发部 副经理 柳柳 开发部 副经理 琪琪 表b id(公司),zw(职务),sum(数量) 人力部 经理 1 人力部 副经理 2 要在表b的sum中自动统计每个id(部门)有几个经理,几个副经理. 表a变化,表b就自动跟着变,应该怎么做?

gridview-Android GridView自动设置高度,请大牛帮忙

问题描述 Android GridView自动设置高度,请大牛帮忙 ScrollView 里面放了GridView,然后因为有刷新,所以我想动态的给GridView赋值,在网上找了下代码都不行 要么没用要么会把刷新功能给遮蔽掉 解决方案 GridView数据刷新么?还是下拉刷新 解决方案二: 填充数据后要重新测量girdview高度,网上有代码 解决方案三: Android GridView Item 高度设置

数据-请大神用oracle中存储过程的自动统计+JOB为我解答问题

问题描述 请大神用oracle中存储过程的自动统计+JOB为我解答问题 比如我有两张表A和B,我想每隔一个小时统计一下"FLOW"这个字段的所有数据的总和,然后将结果保存到B表中的"FLOW_SUM"字段中?我想用存储过程中的自动统计+JOB写,各位大神,求解答,最好写出sql语句来 解决方案 我已经解决了!!!!!!!!!!!!!!!!!!! 解决方案二: 给你个提示想一想 触发器

Greenplum 自动统计信息收集 - 暨统计信息不准引入的broadcast motion一例

标签 PostgreSQL , Greenplum , 统计信息 , 自动统计信息 , broadcast motion , 执行计划 背景 数据库执行计划的好坏,与数据库的SQL优化器息息相关.Greenplum有两套优化器,legacy query optimizer 与 ORCA. 这两个优化器都是CBO优化器,都需要依赖统计信息,如果统计信息不准确,可能生成的执行计划就不准确. 例如我们有一个这样的QUERY,发现怎么跑都跑不出来. 观察执行计划,发现有一个节点用到了broadcast

Python实现代码行数自动统计实例

此功能用到了2个常用的Python标准库os和sys模块就解决. 可能是因为这段时间在做的一个Python项目,用的是一个公司内部的IDE环境,而这个IDE环境产生的py代码并不是以文本方式存储,都是放在二进制文件里面的. 由于这门语言外界几乎接触不到,所以没有针对它的代码统计程序.一个模块完成后要统计代码行数会很困难的,要统计的话只能手工来操作,这不符合我们程序员的一惯风格. 在这期间我一直在关注python语言,但是还没有动手真正的写python程序 .今天就利用中午休息的时间写了一个简单的

Oracle的奇葩设置之自动统计信息更新

    目前,oracle数据库版本已经到达12C了,数据库SQL的执行基本都是基于CBO开销模式的.但是,对于应用维护人员不尽理解数据库的工作原理,他们为了最求数据库的高性能,创建完数据库,却禁用了数据库统计信息自动更新的JOB.在联通,通过如下方法查看,发现很多数据库的统计信息更新作业都被禁用了. SQL> select owner,job_name,enabled from dba_scheduler_jobs where job_name='GATHER_STATS_JOB'; OWNE