• 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

    下载地址:

    狂点我下载

  • 相关阅读:
    第十五次-语法制导的语义翻译
    第十四次--算符优先分析
    第十二次-递归下降语法分析
    第十一次-LL(1)文法的判断,递归下降分析程序
    第十次-消除左递归
    第九次-DFA最小化,语法分析初步
    个人作业——软件工程实践总结作业
    【评分】Alpha阶段
    K 班前7次作业成绩汇总
    【评分】第七次作业--项目需求分析(团队)
  • 原文地址:https://www.cnblogs.com/alua/p/3334452.html
Copyright © 2020-2023  润新知