方法為自訂一個繼承自 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"];
}