zoukankan      html  css  js  c++  java
  • DataGrid的ItemCreated和ItemDataBound以及合计平均行

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

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

    ItemCreated

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

     1 protected void MyDataGrid_ItemCreated(object sender, DataGridItemEventArgs e)
     2         {
     3             if (e.Item.ItemType == ListItemType.Header)
     4             {
     5                 Button btn=new Button();
     6                 btn.Text = e.Item.Cells[4].Text;
     7                 btn.Click += new EventHandler(btn_Click);
     8                 e.Item.Cells[4].Controls.Clear();
     9                 e.Item.Cells[4].Controls.Add(btn);
    10             }
    11         }
    View Code

     

     1 void btn_Click(object sender, EventArgs e)
     2         {
     3             string denUser = "";
     4             CheckBox ckb;
     5             for (int i = 0; i < MyDataGrid.Items.Count; i++)
     6             {
     7                 if (MyDataGrid.Items[i].ItemType== ListItemType.Item||MyDataGrid.Items[i].ItemType== ListItemType.AlternatingItem)
     8                 {
     9                     ckb = (CheckBox) MyDataGrid.Items[i].FindControl("ckb_denyLogin");
    10                     if (ckb != null && ckb.Checked)
    11                     {
    12                         //System.Web.UI.WebControls.TableCell
    13                         denUser += MyDataGrid.DataKeys[i].ToString() + MyDataGrid.Items[i].Cells[1].Text+ ",";
    14                         
    15                     }
    16                 }
    17             }
    18             denUser = denUser.Trim(',');
    19             msglbl.Text = "已被禁止登录的用户:" + denUser;
    20         }
    View Code

     

    ItemDataBound

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

     1 int count = 0;
     2         private int pCount = 0;
     3         protected void MyDataGrid_ItemDataBound(object sender, DataGridItemEventArgs e)
     4         {
     5             if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
     6             {
     7                 DataRowView rv = (DataRowView)e.Item.DataItem;
     8                 //把性别列的bool值替换为相应的文字“男”或“女”
     9                 if ((bool)rv["sex"] == true)
    10                     e.Item.Cells[2].Text = "";
    11                 else
    12                     e.Item.Cells[2].Text = "";
    13                 //根据“禁止登录”列的值设置CheckBox的选中状态
    14                 CheckBox ckb = e.Item.FindControl("ckb_denyLogin") as CheckBox;
    15                 if (ckb != null)
    16                 {
    17                     ckb.Checked = (bool)rv["禁止登陆"];
    18                 }
    19                 pCount += 1;
    20                 count += Convert.ToInt32(rv["age"]);
    21             }
    22             else if (e.Item.ItemType == ListItemType.Footer)
    23             {
    24                 e.Item.Cells[0].Text = "平均";
    25                 e.Item.BackColor=Color.PowderBlue;
    26                 string avge = "";
    27                 if (pCount!=0)
    28                 {
    29                     avge = (Convert.ToInt32(count)/pCount).ToString();
    30                 }
    31                 e.Item.Cells[3].Text = avge;
    32             }
    33         }
    View Code

    下载地址:

    狂点我下载

  • 相关阅读:
    jvm中的热点代码检测机制
    oracle复制表结构和表数据
    sqlserver复制表结构和表数据
    mysql创建和删除唯一索引(unique key)
    sqlserver中的concat()函数
    Cannot find current proxy: Set 'exposeProxy' property on Advised to 'true' to make it available.
    使用AopContxt.currentProxy()方法获取当前代理对象
    poi锁定单元格
    poi设置文本类型
    javascript中的this理解
  • 原文地址:https://www.cnblogs.com/alua/p/3334452.html
Copyright © 2011-2022 走看看