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. BlockingQueue汇总

    前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题.通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便 ...

  2. e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (五) 如何让窗体记录登录状态Session

    在写自动化测试的Node.js脚本时, 时常需要测试所写的case, 可能都需要去重新登录一遍,这将相当的耗时, 好在Selenium都借了Session的机制, 如果在最初的浏览器没有关闭的情况下, ...

  3. leetcode–Binary Tree Maximum Path Sum

    1.题目说明 Given a binary tree, find the maximum path sum.   The path may start and end at any node in t ...

  4. [转载]mac下homebrew的使用

    该文转自:https://www.zybuluo.com/phper/note/87055 mac系统也是基于unix的系统,所以也继承类很多unix的特性,包括软件的编译,安装等.ubuntu下有快 ...

  5. Java 反射机制分析指南

    一.JAVA是动态语言吗? 一般而言,说到动态言,都是指在程序运行时允许改变程序结构或者变量类型,从这个观点看,JAVA和C++一样,都不是动态语言. 但JAVA它却有着一个非常突出的动态相关机制:反 ...

  6. 垃圾回收(GC)的三种基本方式

    垃圾(Garbage)就是程序需要回收的对象,如果一个对象不在被直接或间接地引用,那么这个对象就成为了「垃圾」,它占用的内存需要及时地释放,否则就会引起「内存泄露」.有些语言需要程序员来手动释放内存( ...

  7. iOS - Xcode升级到5.1& iOS升级到iOS7.1问题:Undefined symbols for architecture x86_64

    Xcode升级到5.1 新特性之一就是默认让所有App都通过64位编译器编译.原来在Xcode5.0.x的时候默认的Standard architectures只有(arm7,armv7s),到5.1 ...

  8. Stones

    题目是:HDU1896 题目简述:输入一堆石头,每个石头有自己所在的位置p,以及自己可以抛多远的距离d.你每遇到第奇数个石头,就把石头丢出去,第偶数个石头就不管.计算出最后一个石头它所处的位置. 解法 ...

  9. jquery 延迟加载代码

    <!--引入以下两个js文件--> <script type="text/javascript" src="./js/jquery.min.js&quo ...

  10. iOS开发- 文件共享(利用iTunes导入文件, 并且显示已有文件)

    实现过程: 1.在应用程序的Info.plist文件中添加Application supports iTunes file sharing键,并将键值设置为YES. - (void)viewDidLo ...