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

下载地址:

狂点我下载

 

posted on 2013-09-23 11:01  已经超神  阅读(428)  评论(0编辑  收藏  举报