经常碰到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()) %>
|