如:sql="select name,isadmin from tb"在datagrid中绑定后,会这样显示aaa 1
bbb 0
ccc 1
ddd 0如何将1转为管理员,0转为空,不要通过这样的sql语句中实现
select name case where isadmin='0' then '' when isadmin='1' then '管理员' end as isadmin
from tb而是操作datagrid,请问大家怎么操作,谢谢

解决方案 »

  1.   

    前台:<%# (DataBinder.Eval(Container, "DataItem.isadmin
    ").ToString())=="1"?"管理员":"" %>
      

  2.   

    建一个模板列,里面加一个控件Label id=l1
    gridview的 rowdatabound事件中,编写
    或 datagrid的itemdatabound事件if (e.row.rowindex<0)
    {
    return;
    }
    Label temp=(Label)e.row.findcontrol("l1");
    if (Databinder.getpropertyvalue(e.row.dataitem,"isadmin").tostring().trim()="1")
    temp.text="管理员";
    else
    temp.text="猪";
      

  3.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=F73EF6AD-6878-4748-B963-5181252E5AED
      

  4.   

    在数据库中取出Table,增加一列用来显示你要求的效果,帮定的时候显示新增的就可以了,感觉没有写sql方便。
      

  5.   

    你那个表的数据又不多,干脆直接在datagrid.datasource改数据算了for each datarow in datagrid.datasource.rows//假设为数据源为datatable
     if datarow("xx").item("xxx")="0"
     ...
     else ...
      

  6.   

    sorry, datarow("xx") 改为datarow没有语法, 看得懂就行
      

  7.   

    绑定事件里做
    grid1_itembound
      

  8.   

    czsxj(知道一点) ( ) 信誉:100  2006-07-18 12:51:00  得分: 0  
     
     前台:<%# (DataBinder.Eval(Container, "DataItem.isadmin").ToString())=="1"?"管理员":"" %>这个办法是最好最好的办法
      
     
      

  9.   

    当然你也可以通过在模板列里修改dataBoundString来实现
      

  10.   

    yiming0755() 你说的是WEBFORM上的,我现在要winform上的,不过还是谢谢
      

  11.   

    如:sql="select name,isadmin from tb"在datagrid中绑定后,会这样显示aaa 1
    bbb 0
    ccc 1
    ddd 0如何将1转为管理员,0转为空,不要通过这样的sql语句中实现
    select name case where isadmin='0' then '' when isadmin='1' then '管理员' end as isadmin
    from tb而是操作datagrid,请问大家怎么操作,谢谢
      

  12.   

    后台增加:
    prodected string FormatAdmin(object o)
    {
      if(o != null && o.ToString() == "1")
           return "管理员";
      return null;
    }
    前台写:
    <%# FormatAdmin(DataBinder.Eval(Container, "DataItem.isadmin")) %>
      

  13.   

    我说过了是windows程序,不是web程序,
      

  14.   

    sql 解决方法select name,(case when isadmin=1 then N'管理员' else N'' end) as isadmin from tb
      

  15.   

    isadmin 所在的列的 DataFormatString = "{0:'管理员';'管理员';''}"
      

  16.   

    还up?在你up的楼上的楼上我不是给了个最简单最直接的解决方法了?
      

  17.   

    netmicro(麦) 给出的方法是最好的了
      

  18.   

    都他妈一群SB,人家都说了是Win程序,并且不要用SQL语句来实现。
    竟然这么多人没一个认真回答的,都是一群不看清楚帖就回帖的SB,我只是来为楼主愤不平!
      

  19.   

    可以这样做。
    绑定之前给dataset里的datatable添加一列。
    然后循环判断赋值。
    绑定时让isadmin 这列不显示
      

  20.   

    DataGraid中,列不要自动生成,只要所要的列,然后在
    isadmin 所在的列的 格式中输入"{0:'管理员';'管理员';''}"
      

  21.   

    ds=获得数据源函数
    DataTable dt=ds.Tables[0]; DataColumn col = new DataColumn("isadmin_tmp");
    col.Expression = "iif([isadmin]='1','管理员'','')";
    dt.Columns.Add(col); dt.AcceptChanges();
    dataGrid1.DataSource=dt;绑定时用字段isadmin_tmp,其实就是新增加一列,然后帮定新列