我在DataGrid里设置其中一列的DataGridColumnStyle为DataGridBoolColumn类型,为了实现
该列所对应的数据表中列的内容以checkbox形式显示,但我用的是oracle数据库,没有bool数据
类型,我用1、0的方式表示true、false,如何能让DataGrid中该列的每一行根据1、0来在那列
中能显示成checkbox选中或没选中?急用,请多多帮忙!

解决方案 »

  1.   

    取出来的数据放在DataSet里
    为其所在的DataTable加一列bool型 newColumn
    遍历Table所有行foreach (DataRow dataRow in dataSet.Tables[0].Rows)
    {
        dataRow["newColumn"] = (int)dataRow["原来那列的名字"] == 1 ? true : false;
    }绑定这个 DataSet
    绑定 newColumn 就会有 CheckBox 了
      

  2.   

    添加一个模版列  在数据绑定的时候根据你的数据是1或者0 来置checkbox是否选中
    要么就直接对数据源的列进行替换 增加一个列为bool ,根据每行记录里的0或者1来设置bool值
      

  3.   

    这样设定就可以了,我只在winform下试过啊
    ((DataGridBoolColumn)myColumnStyle3).FalseValue = "0";
    ((DataGridBoolColumn)myColumnStyle3).TrueValue = "1";
      

  4.   

    我照着上面的方法试了试,但还是不论0、1都显示被选中,是为什么?
    DataGridTableStyle ts1 = new DataGridTableStyle();
    ts1.MappingName = "zbloodkind";
    dataGrid1.TableStyles.Add(ts1);DataGridColumnStyle boolCol = new DataGridBoolColumn(); 
    boolCol.MappingName = "state"; 
    boolCol.HeaderText = "审核"; 
    boolCol.Width = 30;
    ((DataGridBoolColumn)boolCol).FalseValue = 0;
    ((DataGridBoolColumn)boolCol).TrueValue = 1;
    ts1.GridColumnStyles.Add(boolCol);
      

  5.   

    写成方法, 用模板列的形式<TemplateColoum>
     <ItemTemplate> <asp:checkbox id=chk runat=server checked='<%# SetStatus(DataBinder.Eval(Container.Eval,"数据表的值">%>' />
      根据 值 写个拦截 这个值的方法 SetStatus, 判断 是否是 1或0 ,返回true/false; </ItemTemplate> </TemplateColumn>后台代码public  bool SetStatus(object obj)
    {
      if( obj.toSting()=="1") return true;
    return fasle;
    }
      

  6.   

    不好意思,水平有些低,那上面的方法放在winform里怎么用?
      

  7.   

    3楼的方法比较简便 说的很清楚了啊 推荐LZ看看C#入门经典