<asp:TemplateColumn>
<ItemTemplate>
<asp:Image ID="img" runat="server" ImageUrl='<%# DataBinder.Eval(Container.DataItem, "A_State")%>?"../../Images/34.gif":"../../Images/00.gif"'>
</asp:Image>
</ItemTemplate>
</asp:TemplateColumn>这是错误的,正确的就靠你们了....谢谢!!
ImageUrl='<%# DataBinder.Eval(Container.DataItem, "A_State")%>?"../../Images/34.gif":"../../Images/00.gif"'>           这个表达式怎么改?

解决方案 »

  1.   

    换个灵活性更好的方法ImageUrl='<%# GetImgUrl(DataBinder.Eval(Container.DataItem, "A_State").ToString())  %>'aspx.cs文件中:
    public string GetImgUrl(string str)
    {
    return str + "......";
    }
      

  2.   

    <asp:Image ID="img" runat="server" ImageUrl='>?"../../Images/34.gif' Visible='<%# DataBinder.Eval(Container.DataItem, "A_State").ToString()!="3"?true:false%>'>
      

  3.   

    不好意思,刚才的有点错误,请看
    下面的这个<asp:Image ID="img" runat="server" ImageUrl='../../Images/34.gif' Visible='<%# DataBinder.Eval(Container.DataItem, "A_State").ToString()!="3"?true:false%>'>
      

  4.   

    songxiaozhao(雨朋) 
    谢谢你的帮助,但你误会我的意思啦,
    当A_State=True显示../../Images/34.gif
    当A_State=False显示../../Images/00.gif
      

  5.   

    try<asp:Image ID="img" runat="server" ImageUrl='<%# ((bool)DataBinder.Eval(Container.DataItem, "A_State"))?"../../Images/34.gif":"../../Images/00.gif" %>'>
    </asp:Image>
      

  6.   

    LaoDai_Net(『老代』)
    我不是用C#,是用VB...
    有VB的吗?
      

  7.   

    老代的可以的
    要不
    <script language=javascript〉
    var tmp=<%#DataBinder.Eval(Containe,"")%>
    tmp=tmp?"a":"b";
    document.write(tmp);
    </script>
      

  8.   

    老代的没有声明bool呀,vb不能这样声明的呀.
      

  9.   

    把整个(A?B:C)表达式写在<%# %>里面,Bind()仅作为第一个运算数,也就是 LaoDai_Net(『老代』) 的那样。其实无论多复杂的表达式,都可以放在<%# %>里面的,Bind()你就当作它是一个普通的函数调用返回值就好了,不过记得它返回的是object,所以在做例如逻辑运算时你就要手动转bool。
      

  10.   

    哦……原来楼主用VB.NET,VB.NET有(A?B:C)运算符吗?类型转换的话,用CBool()转bool,转其他类型用CType()其中第二个参数指定Type,详细请查MSDN。