GridView增加一个统计行的方法
2009-07-19 03:41
190 查看
CMB项目中要涉及到stock的统计功能,由于是采用了gridview来实现数据的显示,这里就碰到了一个问题,在需求分析里客户要求对所有的股票进行一个统计,如下图:
大家看在最下面的一行,只出现了一个数值,其它列都不存在数值,而这个数的功能主要是对上面这行"持仓股票市值进行一个总的统计",这是如何实现的呢?
首先,我们要把gridview里面的属性中ShowFooter="True",就是把gridview的页脚打开,这只是第一步。
第二步:在双击属性面板中的事件,让他自动生成一个GridView1_RowDataBound的事件,我们最终就是要在里面写几行简单的代码实现功能了.
第三步:在protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)加入代码了,由于我这里是做需求分析时,只要在页面里显示出效果就可以了,所以我的代码比较简单。但是如果你要加上统计功能的话,你就可以在里面自定义一些相关变量,或调用相关的方法就可以了,我这里只是一个框架了.
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
decimal totalstock=0;
if (e.Row.RowType == DataControlRowType.DataRow)
{
// totalstock += Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, "stockholdmarketprice"));
// totalstock += DataBinder.Eval(e.Row.DataItem, "stockholdmarketprice");
//在这里就可以实现总和的计算了
}
else if(e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[3].Text="持仓总市值";
e.Row.Cells[3].HorizontalAlign = HorizontalAlign.Right;
e.Row.Cells[4].Text = "HKD15,000,000";
}
这里如果不使用这个事件的话,只在设计的aspx页面中设置<FooterTemplate>来实现的话,就会发现所得到的效果是在每行数据中都会多出一个空白列,如图:
在vs2005中提供的MSDN对GridView.RowDataBound 事件 的描述是这样的:
呈现 GridView 控件之前,该控件中的每一行必须绑定到数据源中的一条记录。将某个数据行(用 GridViewRow 对象表示)绑定到 GridView 控件中的数据以后,将引发 RowDataBound 事件。这使您可以提供一个这样的事件处理方法,即每次发生此事件时都执行一个自定义例程(如修改绑定到该行的数据的值)。
它也提供了一个example出来
程序代码:
<%@ Page language="C#" %>
<script runat="server">
void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
...{
if(e.Row.RowType == DataControlRowType.DataRow)
...{
// Display the company name in italics.
e.Row.Cells[1].Text = "<i>" + e.Row.Cells[1].Text + "</i>";
}
}
</script>
<html>
<body>
<form runat="server">
<h3>GridView RowDataBound Example</h3>
<asp:gridview id="CustomersGridView"
datasourceid="CustomersSqlDataSource"
autogeneratecolumns="true"
allowpaging="true"
onrowdatabound="CustomersGridView_RowDataBound"
runat="server">
</asp:gridview>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="CustomersSqlDataSource"
selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server">
</asp:sqldatasource>
</form>
</body>
</html>
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lovegod12/archive/2009/04/27/4129982.aspx
大家看在最下面的一行,只出现了一个数值,其它列都不存在数值,而这个数的功能主要是对上面这行"持仓股票市值进行一个总的统计",这是如何实现的呢?
首先,我们要把gridview里面的属性中ShowFooter="True",就是把gridview的页脚打开,这只是第一步。
第二步:在双击属性面板中的事件,让他自动生成一个GridView1_RowDataBound的事件,我们最终就是要在里面写几行简单的代码实现功能了.
第三步:在protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)加入代码了,由于我这里是做需求分析时,只要在页面里显示出效果就可以了,所以我的代码比较简单。但是如果你要加上统计功能的话,你就可以在里面自定义一些相关变量,或调用相关的方法就可以了,我这里只是一个框架了.
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
decimal totalstock=0;
if (e.Row.RowType == DataControlRowType.DataRow)
{
// totalstock += Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, "stockholdmarketprice"));
// totalstock += DataBinder.Eval(e.Row.DataItem, "stockholdmarketprice");
//在这里就可以实现总和的计算了
}
else if(e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[3].Text="持仓总市值";
e.Row.Cells[3].HorizontalAlign = HorizontalAlign.Right;
e.Row.Cells[4].Text = "HKD15,000,000";
}
这里如果不使用这个事件的话,只在设计的aspx页面中设置<FooterTemplate>来实现的话,就会发现所得到的效果是在每行数据中都会多出一个空白列,如图:
在vs2005中提供的MSDN对GridView.RowDataBound 事件 的描述是这样的:
呈现 GridView 控件之前,该控件中的每一行必须绑定到数据源中的一条记录。将某个数据行(用 GridViewRow 对象表示)绑定到 GridView 控件中的数据以后,将引发 RowDataBound 事件。这使您可以提供一个这样的事件处理方法,即每次发生此事件时都执行一个自定义例程(如修改绑定到该行的数据的值)。
它也提供了一个example出来
程序代码:
<%@ Page language="C#" %>
<script runat="server">
void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
...{
if(e.Row.RowType == DataControlRowType.DataRow)
...{
// Display the company name in italics.
e.Row.Cells[1].Text = "<i>" + e.Row.Cells[1].Text + "</i>";
}
}
</script>
<html>
<body>
<form runat="server">
<h3>GridView RowDataBound Example</h3>
<asp:gridview id="CustomersGridView"
datasourceid="CustomersSqlDataSource"
autogeneratecolumns="true"
allowpaging="true"
onrowdatabound="CustomersGridView_RowDataBound"
runat="server">
</asp:gridview>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="CustomersSqlDataSource"
selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server">
</asp:sqldatasource>
</form>
</body>
</html>
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lovegod12/archive/2009/04/27/4129982.aspx
相关文章推荐
- GridView增加一个统计行的方法
- GridView增加一个统计行的方法
- GridView增加一个统计行的方法《原创》
- GridView增加一个统计行的方法
- GridView增加一个统计行的方法
- asp gridview 页脚ShowFooter绑定数据,增加一个统计行方法,ShowFooter统计行方法
- QT4 在字符串中查找EMAIL地址(转贴增加一个处理方法)
- js defineSetter -给js的 "class"自动增加一个set的属性(方法)
- ASP.NET MVC3 快速入门-第六节 增加一个追加数据的方法和一个追加数据的视图 .
- 声明一个类,它具有一个方法,此方法被重载三次,派生一个新类, 并增加一个新的重载方法,编写测试类验证四个方法对于派生类都有效
- ASP.NET MVC3 快速入门-第六节 增加一个追加数据的方法和一个追加数据的视图
- java类中增加了新方法,该方法掉用了另外一个类中没有的方法,在不执行该方法的情况下,执行会不会报错
- (原创)利用扩展方法,给 IEnumerable<T> 增加一个生成 Html 的 CheckBox 标签的方法,不用 C# 中的反射技术
- ASP.NET MVC3 快速入门-第六节 增加一个追加数据的方法和一个追加数据的视图
- 后台增加一个左侧列表菜单menu菜单的方法
- c#文件流读取编码问题(转)新增加一个方法解决不带BOM的问题
- 给Array本地对象增加一个原型方法,用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除重复条目的新数组
- [置顶] Android开发之清除缓存功能实现方法,可以集成在自己的app中,增加一个新功能。
- JS实现点击按钮自动增加一个单元格的方法
- 考虑增加一个islogined方法,用来检测是否已经登录