关于条件表达式x?y:z在DataGrid里的格式问题.

szheto 2006-03-03 10:01:16
<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"'> 这个表达式怎么改?
...全文
149 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
szheto 2006-03-05
  • 打赏
  • 举报
回复
ding..........
cat_hsfz 2006-03-05
  • 打赏
  • 举报
回复
哦……原来楼主用VB.NET,VB.NET有(A?B:C)运算符吗?

类型转换的话,用CBool()转bool,转其他类型用CType()其中第二个参数指定Type,详细请查MSDN。
cat_hsfz 2006-03-05
  • 打赏
  • 举报
回复
把整个(A?B:C)表达式写在<%# %>里面,Bind()仅作为第一个运算数,也就是 LaoDai_Net(『老代』) 的那样。

其实无论多复杂的表达式,都可以放在<%# %>里面的,Bind()你就当作它是一个普通的函数调用返回值就好了,不过记得它返回的是object,所以在做例如逻辑运算时你就要手动转bool。
szheto 2006-03-05
  • 打赏
  • 举报
回复
5555555.........问题还没有解决呀!
szheto 2006-03-03
  • 打赏
  • 举报
回复
老代的没有声明bool呀,vb不能这样声明的呀.
ice226 2006-03-03
  • 打赏
  • 举报
回复
老代的可以的
要不
<script language=javascript〉
var tmp=<%#DataBinder.Eval(Containe,"")%>
tmp=tmp?"a":"b";
document.write(tmp);
</script>
szheto 2006-03-03
  • 打赏
  • 举报
回复
LaoDai_Net(『老代』)
我不是用C#,是用VB...
有VB的吗?
老戴12345654 2006-03-03
  • 打赏
  • 举报
回复
try

<asp:Image ID="img" runat="server" ImageUrl='<%# ((bool)DataBinder.Eval(Container.DataItem, "A_State"))?"../../Images/34.gif":"../../Images/00.gif" %>'>
</asp:Image>
szheto 2006-03-03
  • 打赏
  • 举报
回复
自己顶一下
szheto 2006-03-03
  • 打赏
  • 举报
回复
songxiaozhao(雨朋)
谢谢你的帮助,但你误会我的意思啦,
当A_State=True显示../../Images/34.gif
当A_State=False显示../../Images/00.gif
szheto 2006-03-03
  • 打赏
  • 举报
回复
谢谢大哥们的帮助,但我只要求把那个表达式改好就OK啦.....只是格式问题.
nameone 2006-03-03
  • 打赏
  • 举报
回复
UP
songxiaozhao 2006-03-03
  • 打赏
  • 举报
回复
不好意思,刚才的有点错误,请看
下面的这个<asp:Image ID="img" runat="server" ImageUrl='../../Images/34.gif' Visible='<%# DataBinder.Eval(Container.DataItem, "A_State").ToString()!="3"?true:false%>'>
songxiaozhao 2006-03-03
  • 打赏
  • 举报
回复
<asp:Image ID="img" runat="server" ImageUrl='>?"../../Images/34.gif' Visible='<%# DataBinder.Eval(Container.DataItem, "A_State").ToString()!="3"?true:false%>'>
kinzey 2006-03-03
  • 打赏
  • 举报
回复
换个灵活性更好的方法

ImageUrl='<%# GetImgUrl(DataBinder.Eval(Container.DataItem, "A_State").ToString()) %>'

aspx.cs文件中:
public string GetImgUrl(string str)
{
return str + "......";
}
szheto 2006-03-03
  • 打赏
  • 举报
回复
就算把bool去掉也是不行的.

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧