【标题】DataGrid 绑定定制的列
【需求】
1、数据库中有张表lxt_User_Product,表中有个字段audited表示是否审核: 0-未审核 1-已审核
2、在绑定DataGrid时,如果列的值为0,则显示未审核,1显示已审核
【解决方法】
1、在数据库中处理:在数据库中定义函数 changeState,等于0返回未审核,1返回已审核
数据库中定义的函数:
CREATE FUNCTION changeState (@state int )
RETURNS varchar(8)
AS
BEGIN
Declare @_temp varchar(8)
if @state=0
set @_temp= '未审核'
else
set @_temp= '已审核'
return @_temp
END
然后,使用SQL命令查询
select dbo.changeState(audited) as state from lxt_User_Product
在.NET中直接绑定定制(或转换)的列state就可以了。
2、.NET中处理:在DataTable对象中增加临时列
假设已经获得了 DataTable对象dt,下面是增加临时列的代码
foreach(DataRow dr in dt.Rows)
{
if (dr["audited"].Tostring=="0")
dr["state"] ="未审核"; //编码:HttpUtility.UrlEncode("未审核");
else
dr["state"] ="已绑定"; //编码: HttpUtility.UrlEncode("已绑定");
}
在DataGrid中绑定列state即可。