格式化DataGrid的例子【将数据原中的0,1值转换成实际的文字】

来源:互联网 发布:自动化模拟仿真软件 编辑:程序博客网 时间:2024/06/05 16:37

首先准备数据源,数据源采用数据库、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></Contacts><!--StartFragment--><asp:DataGrid id="FormatDataGrid" runat="server" AutoGenerateColumns="False" Width="100%"><HeaderStyle Font-Bold="True"></HeaderStyle><Columns><asp:TemplateColumn><ItemTemplate><asp:LabelText='<%# FormatFullName(DataBinder.Eval(Container, "DataItem.FirstName"),_DataBinder.Eval(Container, "DataItem.LastName")) %>'runat="server" ID="Label1"></asp:Label></ItemTemplate></asp:TemplateColumn><asp:BoundColumn DataField="Email" ReadOnly="True"></asp:BoundColumn><asp:BoundColumn DataField="Manager" ReadOnly="True"><HeaderStyle HorizontalAlign="Center"></HeaderStyle><ItemStyle HorizontalAlign="Center"></ItemStyle></asp:BoundColumn></Columns></asp:DataGrid>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{#region Web Form Designer generated codeoverride protected void OnInit(EventArgs e){//// CODEGEN: This call is required by the ASP.NET Web Form Designer.//InitializeComponent();base.OnInit(e);}/// <summary>/// Required method for Designer support - do not modify/// the contents of this method with the code editor./// </summary>private void InitializeComponent(){this.dgContacts.ItemDataBound +=new System.Web.UI.WebControls.DataGridItemEventHandler(this.dgContacts_ItemDataBound);this.Load += new System.EventHandler(this.Page_Load);}#endregionprotected 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或者Footerif (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.Rede.Item.BackColor = System.Drawing.Color.AliceBlue}else{e.Item.Cells[2].Text = "普通员工";}}}} 
原创粉丝点击