先用sql语句取得数据集后:sql = "SELECT id, title, pub_date, news_type, null as checked FROM news";//复选框列
DataGridBoolColumn checkCol = new DataGridBoolColumn();
checkCol.ReadOnly = false;
checkCol.HeaderText = "选择";
checkCol.MappingName = "checked";
checkCol.Width = 40;
checkCol.AllowNull = false;//试卷ID列
DataGridColumnStyle idCol = new DataGridTextBoxColumn();
idCol.MappingName = "id";
idCol.HeaderText = "试卷号";
idCol.ReadOnly = true;
idCol.Width = 40;
//其他列在得到的dataGrid中,每个 checkbox的值都为null, 都是灰色选中状态, 点击一checkBox为选中后,当选中其他行时, 刚才的那个 checkBox又变成了灰色选中状态。 就是不能修改它的状态。 要怎么办才可以修改呀??

解决方案 »

  1.   

    查看你的datagrid中的列设置
    //以下是我的,就行了。采用datagrid直接设置的有参数与实际的不一样。更改过就行了
    // 
    // dgcISSelect
    // 
    this.dgcISSelect.AllowNull = false;
    this.dgcISSelect.FalseValue = false;   //"False" 这是他原来的,你改为我的
    this.dgcISSelect.HeaderText = "选择";
    this.dgcISSelect.MappingName = "ISSelect";
    this.dgcISSelect.NullValue = false;  //"False" 这是他原来的,你改为我的
    this.dgcISSelect.TrueValue = true;   //"True" 这是他原来的,你改为我的
    this.dgcISSelect.Width = 25;
      

  2.   

    //搜
    http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx
      

  3.   

    试过了,bys_home(浪子无痕)的方法不行。
      

  4.   

    加上这一句,肯定可以的。
    this.dgcISSelect.FalseValue="null"