请教各位高手一个有关DataGrid的问题。
我在DataGrid里设置其中一列的DataGridColumnStyle为DataGridBoolColumn类型,为了实现
该列所对应的数据表中列的内容以checkbox形式显示,但我用的是oracle数据库,没有bool数据
类型,我用1、0的方式表示true、false,如何能让DataGrid中该列的每一行根据1、0来在那列
中能显示成checkbox选中或没选中?
急用,请多多帮忙!
------解决方案--------------------取出来的数据放在DataSet里
为其所在的DataTable加一列bool型 newColumn
遍历Table所有行
foreach (DataRow dataRow in dataSet.Tables[0].Rows)
{
dataRow[ "newColumn "] = (int)dataRow[ "原来那列的名字 "] == 1 ? true : false;
}
绑定这个 DataSet
绑定 newColumn 就会有 CheckBox 了
------解决方案--------------------添加一个模版列 在数据绑定的时候根据你的数据是1或者0 来置checkbox是否选中
要么就直接对数据源的列进行替换 增加一个列为bool ,根据每行记录里的0或者1来设置bool值
------解决方案--------------------这样设定就可以了,我只在winform下试过啊
((DataGridBoolColumn)myColumnStyle3).FalseValue = "0 ";
((DataGridBoolColumn)myColumnStyle3).TrueValue = "1 ";
------解决方案-------------------- 写成方法, 用模板列的形式 <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;
}
------解决方案--------------------3楼的方法比较简便 说的很清楚了啊
推荐LZ看看C#入门经典