例如
<% if (<%#DataBinder(...) %) {%>
<div></div>
<% else {%>
<div></div>
<%}%>
这样不对,该怎么写

解决方案 »

  1.   

    感觉<%# %>应该是放到某个数据控件里面的
      

  2.   

    <%# %>表达式只能在绑定数据的时候用
    <% %>则是嵌入服务端代码,在里面包含<%# %>编译肯定通不过
    如果是在ListView里面,直接用三目运算就好了
    <%# <%#DataBinder(...) ? "<div>...</div>" : "<div>...</div>" %>
    如果div内容比较长怎么办?你可以加上runat=server或者用Panel来代替它最后可能就成了这样
    <div runat="server" visible='<%# DataBinder("... ") %>'>...</div>
    <div runat="server" visible='<%# !DataBinder("... ")%>'>...</div>
      

  3.   

    不过推荐的做法是你在后台写个方法,前台绑定个方法来输出
    <%# ShowContent(DataBinder(...))%>string ShowContent (bool isShow)
    {
       if(isShow) 
          //div
       esle
          //div
       return
    }
      

  4.   


    <div style='display:<%#Eval("isShow").ToString=="1"?"none:"block""%>'>
    你要的是这个效果吧?
    </div>  
      

  5.   

    <%# Eval("").ToString()=="<div>1</div>"?"<div>2</div>"%>