我用dataGrid绑定dataset显示数据,我想在dataGrid中绑定一个checkbox.如果新建一个dataTable建立Columns,然后添rows可以实现。但是如果我把建立完列后把dataset绑定上去,操作就无效了,不能显示checkbox,代码如下:MySqlConnection myConn=null;
try
{
string CONNECT_DB_STR=String.Format("server={0};user id={1}; password={2}; database={3};CharSet=gb2312; pooling=false","61.178.85.31","west100","windstorm","jje" );
myConn = new MySqlConnection(CONNECT_DB_STR);
myConn.Open();
}
catch(Exception ex)
{
Console.WriteLine("error in connect --------->" + ex.StackTrace.ToString());
Console.WriteLine("error message------------>" + ex.Message);
if(myConn!=null) myConn.Close(); }

string strSql = "select * from phs_sms limit 10";
MySqlCommand cmd = new MySqlCommand(strSql);




cmd.Connection = myConn;


cmd.CommandType = CommandType.Text;

//创建数据集

MySqlDataAdapter da = new MySqlDataAdapter(cmd);
ds = new DataSet();
da.Fill(ds);
DataTable dt = new DataTable();
dt.Columns.Add("1");
dt.Columns.Add("2",typeof(bool));
dt.Columns.Add("3");
                           dt = ds.Tables[0];

dataGrid1.DataSource= dt;
                            myConn.Close();

解决方案 »

  1.   

    你需要自己去定制DataGrid的DataGridTableStyle样式
      

  2.   

    #region 列信息Datagrid样式
    private void dgColumnStyle_Column()
    {
    //声明DataGridTableStyle
    DataGridTableStyle myTableStyle = new DataGridTableStyle( );
    myTableStyle.MappingName = "SS_COLUMN"; //声明DataGridColumnStyle2
    DataGridTextBoxColumn ColumnStyle2 = new DataGridTextBoxColumn();
    ColumnStyle2.MappingName = "C_ENAME";
    ColumnStyle2.HeaderText = "列名";
    ColumnStyle2.Width = 60;
    ColumnStyle2.ReadOnly = true;
    myTableStyle.GridColumnStyles.Add(ColumnStyle2); //声明DataGridColumnStyle10
    DataGridBoolColumn ColumnStyle10 = new DataGridBoolColumn();
    ColumnStyle10.MappingName = "C_UNIQUE";
    ColumnStyle10.HeaderText = "主键";
    ColumnStyle10.AllowNull = false;
    ColumnStyle10.NullValue = Convert.DBNull;
    ColumnStyle10.TrueValue = (decimal)1;//这里注意DataTable里的列类型,string的给对应成decimal就会checkbox变灰无效
    ColumnStyle10.FalseValue = (decimal)0;
    ColumnStyle10.Width = 35;
    ColumnStyle10.ReadOnly = true;
    myTableStyle.GridColumnStyles.Add(ColumnStyle10);
    //添加列格式和表格式
    dataGridMain.TableStyles.Clear();
    dataGridMain.TableStyles.Add( myTableStyle );
    }
    #endregion
      

  3.   

    定制DataGrid的DataGridTableStyle样式
      

  4.   

    自己定制DataGridTableStyle设置风格