格式化DataGrid的例子

DataGrid的列,也即是将数据原中的0,1值转换成实际的文字的功能,主要是在数据绑定的帮定事件。  

 首先准备数据源,数据源采用数据库、XML、数组等都可以。下面以XML做例子。Contacts.xml文件如下:

<? xml version="1.0" encoding="gb2312" standalone="yes" ?>  
  
< Contacts >  
   
< Contact >  
   
< EMail > myaddress@mycompany.com </ email >  
   
< FirstName > E章 </ FirstName >  
   
< LastName > 孟子 </ LastName >  
   
< Manager > 0 </ Manager >  
   
</ Contact >  
   
< Contact >  
   
< Email > youraddress@yourcompany.com </ Email >  
   
< FirstName > 宪会 </ FirstName >  
   
< LastName > </ LastName >  
   
< Manager > 1 </ Manager >  
   
</ Contact >  
   
< Contact >  
   
< Email > mm@mmm.mm </ Email >  
   
< FirstName > Lover </ FirstName >  
   
< LastName > Net </ LastName >  
   
< Manager > 0 </ Manager >  
   
</ Contact >  
   
< Contact >  
   
< Email > xxx@xxxx.xx </ Email >  
   
< FirstName > NET开发者园地 </ FirstName >  
   
< LastName />  
   
< Manager > 0 </ Manager >  
   
</ Contact >  
   
< Contact >  
   
< Email > hhh@hhh.hh </ Email >  
   
< FirstName > XML开发者园地 </ FirstName >  
   
< LastName />  
   
< Manager > 1 </ Manager >  
   
</ Contact >  
  
</ Contacts >  

 

 

using  System; 
  
using  System.Collections; 
  
using  System.ComponentModel; 
  
using  System.Data; 
  
using  System.Drawing; 
  
using  System.Web; 
  
using  System.Web.SessionState; 
  
using  System.Web.UI; 
  
using  System.Web.UI.WebControls; 
  
using  System.Web.UI.HtmlControls; 
   
   
/// <summary> 
   
/// Summary description for idbSample. 
   
/// </summary> 

    public   class  idbSample : System.Web.UI.Page 
   

   
   
Web Form Designer generated code 
   
   
protected System.Web.UI.WebControls.DataGrid FormatDataGrid; 
   
   
private DataSet _dsContacts; 
   
   
private void Page_Load(object sender, System.EventArgs e) 
   

   
// 装载XML数据原,注意:这里与数据原类型没有关系,换成数据库也是适用的 
   _dsContacts = new DataSet(); 
   _dsContacts.ReadXml(Server.MapPath(
"Contacts.xml")); 
   DataColumn[] dcPk 
= {_dsContacts.Tables["Contact"].Columns["Email"]}
   _dsContacts.Tables[
"Contact"].PrimaryKey = dcPk; 
   
   
if (!Page.IsPostBack ) 
   

   BindContacts(); 
   }
 
   }
 
   
   
private void BindContacts() 
   

   DataView dv 
= new DataView(_dsContacts.Tables["Contact"]); 
   dv.Sort 
= "LastName, FirstName"
   dgContacts.DataSource 
= dv; 
   dgContacts.DataBind(); 
   }
 
   
   
protected string FormatFullName(object FirstName, object LastName) 
   

   
// 格式划名称列 
   return (string)LastName + "" + (string)FirstName; 
   }
 
   
   
protected void FormatDataGrid_ItemDataBound(object source, 
   System.Web.UI.WebControls.DataGridItemEventArgs e) 
   

   
// 确保处理的是数据行,而不是Header或者Footer 
   if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
   

   
// 得到Manager字段的值 
   string isManager = (string)DataBinder.Eval(e.Item.DataItem, "Manager"); 
   
   
if (isManager == "1"
   

   
// ' 设定文字和背景颜色 
   e.Item.Cells[2].Text = "经理" 
   e.Item.Cells[
2].Style.Add("font-weight""bold"
   e.Item.Cells[
2].ForeColor = System.Drawing.Color.Red 
   e.Item.BackColor 
= System.Drawing.Color.AliceBlue 
   }
 
   
else 
   

   e.Item.Cells[
2].Text = "普通员工"
   }
 
   }
 
   }
 
   }
 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值