日期:2014-05-20  浏览次数:20516 次

====一个貌视简单的问题:服务器标记的格式不正确。====
在一个Repeater控件中,在ItemTemplate中我嵌套了一个Panel控件,检测如果某项字段> 0,那么改Panel的就可见,否则就不可见,写法如下:

<asp:Repeater   ID= "rpt "   runat= "server "   OnItemDataBound= "rpt_ItemDataBound ">
<ItemTemplate>
<asp:Panel   id= "panReplyFile "   runat= "server "   Visible= " <%#   ((long)Eval( "infoFileID "))> 0?true:false   %> "> ... </asp:Panel>
</ItemTemplate>
</asp:Repeater>

打开此页时总是提示Visible= " <%#   ((long)Eval( "infoFileID "))> 0?true:false   %> "的格式不正确,换了很多种方式都不行~~

怎么回事了,应该如何设置?

------解决方案--------------------
解释:
Visible 需一个bool值
这样:
Visible= " <%# ((long)Eval( "infoFileID "))> 0?true:false %> "
实际是给Visible赋值 true or false 属string 类型
故改为:Visible= " <%# ((long)Eval( "infoFileID "))> 0%> ">


------解决方案--------------------
Visible= ' <%# (DataBinder.Eval(Container, "infoFileID ").ToString())!= "0 "?true:false %> '>
------解决方案--------------------
Visible= " <%# ((long)Eval( "infoFileID "))> 0? 'true ': 'false ' %> "
------解决方案--------------------
在邦定事件里通过
Panel a = (Panel)e.Row.FindControl( "panReplyFile ");
a.Visible设置
------解决方案--------------------
Visible= ' <%# (DataBinder.Eval(Container, "infoFileID ").ToString())!= "0 "?true:false %> '