有关DataGrid显示数据的问题

- 中国WEB开发者网络 (http://www.webasp.net)
-- 技术教程 (http://www.webasp.net/article/)
--- 有关DataGrid显示数据的问题 (http://www.webasp.net/article/28/27311.htm)
-- 作者:未知
-- 发布日期: 2006-02-17
经常碰到DataGrid中要显示一个数据,先要用IF语句判断其值,然后决定怎样显示.问题是,DataGrid中不可直接写条件语句,怎样实现呢?这里我用了两种方法。
方法一:在把数据绑定到DataSet后,更改里面的数据,例如:
SqlDataAdapter myCmd=new SqlDataAdapter(strSql,myConn);
 DataSet ds=new DataSet();
 myCmd.Fill(ds,"操作员");
 for(int i=0;i<ds.Tables[0].Rows.Count;i++)
 {
  if(ds.Tables[0].Rows[i]["Oper_state"].ToString()=="1")
   ds.Tables[0].Rows[i]["Oper_state"]="有效";
  else if(ds.Tables[0].Rows[i]["Oper_state"].ToString()=="0")
   ds.Tables[0].Rows[i]["Oper_state"]="冻结";
}
MyDataGrid.DataSource=ds.Tables["操作员"].DefaultView;
MyDataGrid.DataBind();
方法二:通过写一个函数,把绑定到DataGrid某一列的数据转化成要显示字符串,例如:
SqlDataAdapter myCmd=new SqlDataAdapter(strSql,myConn);
 DataSet ds=new DataSet();
 myCmd.Fill(ds,"操作员");
MyDataGrid.DataSource=ds.Tables["操作员"].DefaultView;
MyDataGrid.DataBind();
在DataGrid摸版列里这样绑定数据:
<%# TurnToStatus(DataBinder.Eval(Container.DataItem,"Oper_state").ToString()) %>

webasp.net