[C#]如何能自訂在dataGrid中顯示的內容或是format

包含 c#, asp.net, vb.net, delphi.net 等 .net framework 的開發討論區
回覆文章
頭像
tim
文章: 1380
註冊時間: 2008年 11月 26日, 00:49

[C#]如何能自訂在dataGrid中顯示的內容或是format

文章 tim »

可以參考: http://support.microsoft.com/default.as ... -tw;319076

方法為自訂一個繼承自 DataGridTextBoxColumn 的 class, 以利自訂 protected function GetColumnvalueAtRow, 如此一來便能有效的自訂要顯示的格示或內容.
如 1 為 "男", 2 為 "女" 或是 Y 為 "是", N 為 "否".

sample code 如下,

代碼: 選擇全部

     
      // 自訂的一個 class 
      public class InfoTextBoxColumn : DataGridTextBoxColumn 
      { 
        protected override object GetColumnvalueAtRow(CurrencyManager cm, int RowNum) 
        { 
          try 
          { 
            DataRow dr = ((DataView)cm.List)[RowNum].Row; 
            if(dr["sex"].ToString().Trim() == "1") 
              return "男";                   
            else 
              return "女"; 
          } 
          catch 
          { 
            return ""; 
          } 
        } 
      } 
     
      //執行程式 
        private void button2_Click(object sender, System.EventArgs e) 
        { 
           
          conn = new SqlConnection("Password=xxx;Persist Security Info=True;User ID=xxx;Initial Catalog=test;Data Source=serverName"); 
          conn.Open();       
          sa = new SqlDataAdapter("select * from member", conn); 
          DataSet ds = new DataSet(); 
          sa.Fill(ds, "member");     
           
           
          InfoTextBoxColumn cs = new InfoTextBoxColumn();       
          cs.Width = 75; 
          cs.MappingName = "sex"; 
          cs.HeaderText = "性別";     
           
     
          System.Windows.forms.DataGridTablestyle dgt = new DataGridTablestyle(); 
     
          dgt.GridColumnstyles.Add(cs); 
          dgt.MappingName = "member"; 
     
          dataGrid1.Tablestyles.Add(dgt); 
     
          dataGrid1.DataSource = ds.Tables["member"]; 
           
         
        } 
多多留言, 整理文章, 把經驗累積下來.....
回覆文章