DataGrid为数据绑定控件,是重量级控件,臃肿,无华不实这么一个控件定位。如果做为管理系统,那么还是可以使用的。

本文只是为了记录ItemCreated和ItemDataBound两个事件的用法。方便自己以后查询使用。

ItemCreated

ItemCreated为DataDrid创建表格时触发,这时候里面还有没绑定数据,只是初始化表格(可以理解为Datagrid刚初始化完成触发的事件)。在这个事件中可以为DataGrid表头添加控件等。

 protected void MyDataGrid_ItemCreated(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Header)
{
Button btn=new Button();
btn.Text = e.Item.Cells[].Text;
btn.Click += new EventHandler(btn_Click);
e.Item.Cells[].Controls.Clear();
e.Item.Cells[].Controls.Add(btn);
}
}
 void btn_Click(object sender, EventArgs e)
{
string denUser = "";
CheckBox ckb;
for (int i = ; i < MyDataGrid.Items.Count; i++)
{
if (MyDataGrid.Items[i].ItemType== ListItemType.Item||MyDataGrid.Items[i].ItemType== ListItemType.AlternatingItem)
{
ckb = (CheckBox) MyDataGrid.Items[i].FindControl("ckb_denyLogin");
if (ckb != null && ckb.Checked)
{
//System.Web.UI.WebControls.TableCell
denUser += MyDataGrid.DataKeys[i].ToString() + MyDataGrid.Items[i].Cells[].Text+ ","; }
}
}
denUser = denUser.Trim(',');
msglbl.Text = "已被禁止登录的用户:" + denUser;
}

ItemDataBound

ItemDataBound为DataDrid绑定为数据触发的事件。在这里可以根据数据相应的处理,例如(1)在数据源中的男女用1,0表示,在本事件中就可以将1,0转换为可读性高的文字“男“,”女“;(2)在数据源中的是否启用 用bool表示,在本事件中就可以转换为复选框。(3)并且可以为Datagrid添加Footer行,进行合计或者平均运算。

 int count = ;
private int pCount = ;
protected void MyDataGrid_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataRowView rv = (DataRowView)e.Item.DataItem;
//把性别列的bool值替换为相应的文字“男”或“女”
if ((bool)rv["sex"] == true)
e.Item.Cells[].Text = "男";
else
e.Item.Cells[].Text = "女";
//根据“禁止登录”列的值设置CheckBox的选中状态
CheckBox ckb = e.Item.FindControl("ckb_denyLogin") as CheckBox;
if (ckb != null)
{
ckb.Checked = (bool)rv["禁止登陆"];
}
pCount += ;
count += Convert.ToInt32(rv["age"]);
}
else if (e.Item.ItemType == ListItemType.Footer)
{
e.Item.Cells[].Text = "平均";
e.Item.BackColor=Color.PowderBlue;
string avge = "";
if (pCount!=)
{
avge = (Convert.ToInt32(count)/pCount).ToString();
}
e.Item.Cells[].Text = avge;
}
}

下载地址:

狂点我下载

DataGrid的ItemCreated和ItemDataBound以及合计平均行的更多相关文章

  1. easyUI datagrid 根据查询条件 选中对应数据的行

    开始 输入了 土豆,南瓜,再次是小青菜,每次输入点击搜索的时候(模糊查询),选中的当前数据对应的行 在做之前,在网上查询了许多资料,也在技术群里问过许多次,弄了好久终于好了. 第一次写博客真不知道写啥 ...

  2. easyui的datagrid组件,如何设置点击某行不会高亮该行的方式

    easyui的datagrid组件,有些时候我们点击某行不想高亮显示,如何设置点击某行不会高亮该行的方式,有好几种方法可以实现,我举几个,可以根据你具体需求灵活应用: 1.修改easyui的css将高 ...

  3. 关于jQuery easyUI 添加合计统计行

    首先在onLoadSuccess中添加计算函数:计算方法按各自业务需要,我做了一个判断非数 然后再在gatagrid表格添加行,$('#div').datagrid('appendRow', {... ...

  4. GridView控件

    GridView是ASP.NET 1.x的DataGrid控件的后继者.它提供了同样的基本功能集,同一时候添加�了大量扩展和改进.如前所述,DataGrid(ASP.NET 2.0仍然全然支持)是一个 ...

  5. 控件gridview的属性全集

    1. GridView控件的属性 表10.6 GridView控件的行为属性 属性 描述 AllowPaging 指示该控件是否支持分页. AllowSorting 指示该控件是否支持排序. Auto ...

  6. C# DataGrid根据某列的内容设置行字体加粗 单元格设置对齐方式

    最近做了个功能,DataGrid显示具体内容的时候,根据某列分组. 每个分组具体内容后边,增加一行显示合计信息. 查询数据时,使用了union all将分组数据与明细数据合并起来,使用了排序达到了预期 ...

  7. ASP.NET中Web DataGrid的使用指南

    DataGrid/DataList在ASP.NET非常重要,凡显示Table类型的数据,大多会使用这两个控件. 一.方法 1.DataBind很简单.最常用的方法.绑定数据用.需要注意的只有一点:执行 ...

  8. EasyUI datagrid 行编辑

    一.HTML: <div class="info"> <div class="info_tt"> <span class=&quo ...

  9. jQuery easyUI datagrid 增加求和统计行 分类: JavaScript 2015-01-14 17:46 2178人阅读 评论(0) 收藏

    在datagrid的onLoadSuccess事件增加代码处理. <style type="text/css"> .subtotal { font-weight: bo ...

随机推荐

  1. 提示29. 怎样避免延迟加载或Load()阅读器问题

    提示29. 怎样避免延迟加载或Load()阅读器问题 如果你有如下这样的代码: 1 var results = from c in ctx.Customers 2 where c.SalesPerso ...

  2. 5个最优秀的Java和C#代码转换工具

    http://www.codeceo.com/article/5-java-csharp-convert-tools.html 毋庸置疑,Java是一门最受欢迎而且使用最广泛的编程语言,目前有超过9百 ...

  3. 问题:关于贴友一个用js传递value默认值的简单实现

    需求和代码如下: “这是我的代码:” 1: <input type="text" id="price2" value="333"/&g ...

  4. C语言基础--宏

    宏在C语言中经常使用,在linux的源码中可以看到很多宏的高级应用.因此不理解宏,就很难理解代码.本文参考一些互联网资料做一些总结,希望给大家带来帮助. 先说说使用宏的优点及缺点: 优点: 1.提高代 ...

  5. 在ubuntu中启用ftp服务

    Vsftpd vsftpd,ftp服务端,本文转自http://wiki.ubuntu.org.cn/Vsftpd 目录 [隐藏] 1 stand alone和super daemon 2 安装 3 ...

  6. AIDL:Binder invocation to an incorrect interface

    Android进程之间通信异常:主要原因是客户端的aidl文件和与远程调用的Service的aidl文件包名不同 处理方式一般就是在客户端要一个与远程暴露出来的接口包名要一致  服务端: 客户端:

  7. POJ1503: Integer Inquiry(连续多个大整数加法运算)

    #include<iostream> #include<cstring> using namespace std; string sum; ; string tool(stri ...

  8. CDH ecosystem components

    1,Mahout ASF(Apache Software Foundation)开源项目,提供可扩展的`机器学习`--(ML,Machine Learning多领域交叉学科,涉及概率,统计,逼近,凸分 ...

  9. Fragment使用问题

    1.Fragment嵌套Fragment,子fragment使用了viewpager,发现fragment不显示,解决方案如下 //使用下面代码 getChildFragmentManager(); ...

  10. Android实例-解决虚拟键盘遮挡问题(XE8+小米2)

    结果: 1.可以自动向上移动,来防遮挡,但同时发现个问题,如果是按硬件返回没有问题,要是点输入法(QQ.百度输入法)上的隐藏就不行了. 2.点击Edit2后出现输入法,点输入法上的隐藏后, 再点Edi ...