DataGrid的多种格式化显示方法

    技术2022-05-11  154

    // 1.用<%# DataBinder.Eval(Container.DataItem,"MaritalStatus").ToString()=="1"?"已婚":"未婚" %>方式显示 // 2.用sql中的case Gender when 1 then '男' else '女' end显示 // 3.在后台写方法,前台调用显示,如Format(object item,string type) // 4.DataGrid1_ItemDataBound 1.html < HTML >      < HEAD >          < title > GridFormat </ title >          < meta  content ="Microsoft Visual Studio .NET 7.1"  name ="GENERATOR" >          < meta  content ="C#"  name ="CODE_LANGUAGE" >          < meta  content ="JavaScript"  name ="vs_defaultClientScript" >          < meta  content ="http://schemas.microsoft.com/intellisense/ie5"  name ="vs_targetSchema" >      </ HEAD >      < body  MS_POSITIONING ="GridLayout" >          < form  id ="Form1"  method ="post"  runat ="server" >              < asp:datagrid  id ="DataGrid1"  style ="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 16px"  runat ="server"                 AutoGenerateColumns ="False"  BorderColor ="#CC9966"  BorderStyle ="None"  BorderWidth ="1px"  BackColor ="White"                 CellPadding ="4" >                  < FooterStyle  ForeColor ="#330099"  BackColor ="#FFFFCC" ></ FooterStyle >                  < SelectedItemStyle  Font-Bold ="True"  ForeColor ="#663399"  BackColor ="#FFCC66" ></ SelectedItemStyle >                  < ItemStyle  ForeColor ="#330099"  BackColor ="White" ></ ItemStyle >                  < HeaderStyle  Font-Bold ="True"  ForeColor ="#FFFFCC"  BackColor ="#990000" ></ HeaderStyle >                  < Columns >                      < asp:TemplateColumn  HeaderText ="ID" >                          < ItemTemplate >                              <% # DataBinder.Eval(Container.DataItem,"UserID" %>                          </ ItemTemplate >                      </ asp:TemplateColumn >                      < asp:TemplateColumn  HeaderText ="学位" >                          < ItemTemplate >                              <% # Format(Container.DataItem,"Degree" %>                          </ ItemTemplate >                      </ asp:TemplateColumn >                      < asp:TemplateColumn  HeaderText ="性别" >                          < ItemTemplate >                              <% # DataBinder.Eval(Container.DataItem,"Gender" %>                          </ ItemTemplate >                      </ asp:TemplateColumn >                      < asp:TemplateColumn  HeaderText ="婚姻状况" >                          < ItemTemplate >                              <% # DataBinder.Eval(Container.DataItem,"MaritalStatus").ToString()=="1"?"已婚":"未婚"  %>                          </ ItemTemplate >                      </ asp:TemplateColumn >                      < asp:TemplateColumn  HeaderText ="描述" >                          < ItemTemplate >                              <% # DataBinder.Eval(Container.DataItem,"Description" %>                          </ ItemTemplate >                      </ asp:TemplateColumn >                  </ Columns >                  < PagerStyle  HorizontalAlign ="Center"  ForeColor ="#330099"  BackColor ="#FFFFCC" ></ PagerStyle >              </ asp:datagrid ></ form >      </ body > </ HTML > 2.cs代码 public   class  GridFormat : System.Web.UI.Page     {        protected System.Web.UI.WebControls.DataGrid DataGrid1;            private void Page_Load(object sender, System.EventArgs e)        {            //1.用<%# DataBinder.Eval(Container.DataItem,"MaritalStatus").ToString()=="1"?"已婚":"未婚" %>方式显示            //2.用sql中的case Gender when 1 then '男' else '女' end显示            //3.在后台写方法,前台调用显示,如Format(object item,string type)            //4.DataGrid1_ItemDataBound            DataBind();        }        #region GetDataSet        private DataSet GetDataSet(string sql)        {            string constring=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];            SqlDataAdapter    sda =new SqlDataAdapter(sql,constring);            DataSet ds=new DataSet();            sda.Fill(ds);            return ds;        }        #endregion                #region DataBind        private void DataBind()        {            string sql="select UserID,Degree,Gender =case Gender when 1 then '男' else '女' end,MaritalStatus,Description from formatgrid ";            DataSet ds=GetDataSet(sql);            this.DataGrid1.DataSource=ds;            this.DataGrid1.DataBind();        }        #endregion        #region Format        protected string Format(object item,string type)        {            DataRowView drv=(DataRowView)item;            string val=string.Empty;            switch (drv["Degree"].ToString().ToLower())            {                case "1":                                    val="博士后";                    break;                                case "2":                                    val="博士";                    break;                case "3":                                    val="硕士";                    break;                case "4":                                    val="学士";                    break;                                    default:                                    val=drv["Degree"].ToString();                    break;            }            return val;                    }        #endregion                Web Form Designer generated code        #region DataGrid1_ItemDataBound        private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)        {            if (e.Item.ItemType!=ListItemType.Header)             {                string subject=Convert.ToString(DataBinder.Eval(e.Item.DataItem,"Description"));                if (subject.Length >10)                 {                    subject=subject.Substring(0,10)+"";                }                e.Item.Cells[4].Text=subject;             }                    if (e.Item.ItemType!=ListItemType.Header)                  {                              e.Item.Cells[1].Attributes.Add( "onmouseover","this.style.color='Red';this.style.cursor='hand'");                              e.Item.Cells[1].Attributes.Add( "onmouseout","this.style.color='Black';this.style.cursor='default'");                     }        }        #endregion    } 3.数据库教本 if   exists  ( select   *   from  dbo.sysobjects  where  id  =   object_id (N ' [dbo].[FormatGrid] ' and   OBJECTPROPERTY (id, N ' IsUserTable ' =   1 ) drop   table   [ dbo ] . [ FormatGrid ] GO CREATE   TABLE   [ dbo ] . [ FormatGrid ]  (     [ UserID ]   [ int ]   NULL  ,     [ Degree ]   [ int ]   NULL  ,     [ Gender ]   [ int ]   NULL  ,     [ MaritalStatus ]   [ int ]   NULL  ,     [ Description ]   [ nvarchar ]  ( 500 ) COLLATE Chinese_PRC_CI_AS  NULL  )  ON   [ PRIMARY ] GO -- 测试数据 insert   into  FormatGrid(UserID,Degree,Gender,MaritalStatus,Description)  values ( 1 , 1 , 1 , 0 , ' 可以读取流。读取是从流到数据结构(如字节数组)的数据传输。 ' ) insert   into  FormatGrid(UserID,Degree,Gender,MaritalStatus,Description)  values ( 2 , 2 , 0 , 1 , ' 可以写入流。写入是从数据结构到流的数据传输。 ' ) insert   into  FormatGrid(UserID,Degree,Gender,MaritalStatus,Description)  values ( 3 , 3 , 1 , 0 , ' 流可以支持查找。查找是对流内的当前位置进行查询和修改。查找功能取决于流具有的后备存储区类型。例如,网络流没有当前位置的统一概念,因此一般不支持查找。 ' ) insert   into  FormatGrid(UserID,Degree,Gender,MaritalStatus,Description)  values ( 4 , 4 , 0 , 1 , ' 小山哥 ' ) insert   into  FormatGrid(UserID,Degree,Gender,MaritalStatus,Description)  values ( 5 , 5 , 1 , 0 , ' 山哥 ' )

    最新回复(0)