例如在asp里
<%=dj(rs("id"))%><%
function dj(demo)
 if demo=1 then
   dj="a"
 elseif
   dj="b"
end function
%>请问在C#里如何将这句代码转换?
<%#DataBinder.Eval(Container.DataItem, "id")%>

解决方案 »

  1.   

    asp.net可以把代码都写在cs文件里面然后编译,而不是通过脚本来解释
      

  2.   

    <%#DataBinder.Eval(Container.DataItem,   "id ")%> 读出来的值是:1,我的意思是如何像asp那样转换成a
      

  3.   

    能不能实现像asp那样写个函数就行了
      

  4.   

    当然可以,我用的前台格式化字符函数
    aspx文件:<%# formatinfo(DataBinder.Eval(Container,"DataItem.ErrorReason").ToString(),300)%>cs文件:
    //前台格式化字符函数
    public string formatinfo(string mystr,int zdlength)
    {
    if (mystr.Length>zdlength)
    {
    mystr=mystr.Substring(0,zdlength)+"...";
    }
    return mystr;
    }
      

  5.   

    如果是写在cs文件里面也函数可以用protected类型,如果是写有多层架构的类文件里面用public类型
      

  6.   

    不过依照LZ的需求也可以不用函数,直接用c#的三元运算符就可以了:<%# DataBinder.Eval(Container.DataItem,"id").ToString()=="1"?"a":"b" %>
      

  7.   

    谢谢wangkun9999,
    <%# DataBinder.Eval(Container.DataItem,"id").ToString()=="1"?"a":"b" %>就可以实现,是不是,如果值为1的时候是a,不为1时是b
      

  8.   

    是的啦,lz,这种问题解决的办法很多,也可以在sql语句里面实现,打个比方:  select id,(case id when 1 then 'a' else 'b' end) as pid,... from mytable
    然后页面上直接绑定pid字段就可以了:
    <%# DataBinder.Eval(Container.DataItem,"pid")%>
    lz不要局限在asp里面了,asp.net比asp功能强大多了
      

  9.   

    是的,在sql语句里实现就比较麻烦,而且又不是只读取一个字段