我用的是c#+asp.net结合的方法。
在repeater控件里面绑定了一条数据,代码如下:
<%# DataBinder.Eval(Container.DataItem,"msg_reply") %>现在我想写一个判断语句,当绑定的数据字符串不为空时,就产生另一些html代码:<% if (xxxx){ %>    //xxxx是我想要的条件语句
<div align="right">版主于<%# DataBinder.Eval(Container.DataItem,"msg_reply_time") %>
回复<br>
</div>
<% } %>
请问xxxx这里该怎么写呀?

解决方案 »

  1.   

    <%
    if DataBinder.Eval(Container.DataItem,"msg_reply")!=null
    {
    %>
    不过不建议这么做
    建议在repeater的itembound事件内书写代码
      

  2.   

    今天遇到一个问题,比如小于60分的人用红色显示
    由于当时用的是REPEATER控件,没有办法直接处理CELL的属性
    所以我不得不把原来的直接输出
    <%# DataBinder.Eval(Container.DataItem,"score") %>
    修改为
    <asp:Label ID="score" Runat="server"><%# DataBinder.Eval(Container.DataItem,"score1") %></asp:Label>
    然后加上REPEATER控件ItemDataBound方法的代码
    if (e.Item.ItemType==ListItemType.Item){
    if(Convert.ToInt16(DataBinder.Eval(e.Item.DataItem, "score1"))<60)((Label)e.Item.FindControl("score1")).ForeColor=Color.Red;
    }
      

  3.   

    hehe,完全可以用摸板列来处理
    <%# DataBinder.Eval(Container.DataItem,"msg_reply") %>改成
    <%#func( DataBinder.Eval(Container.DataItem,"msg_reply").ToString()) %>
    在后台编写func函数,想怎么处理就怎么处理,想返回什么就返回什么,注意该函数要public
      

  4.   

    对于楼主的要求就可以这样
    前台:
    <%#getstr( DataBinder.Eval(Container.DataItem,"msg_reply").ToString(),DataBinder.Eval(Container.DataItem,"msg_reply_time").ToString()) %>
    后台:
    public string getstr(string reply,string reply_time)
    {
    if(reply!="")
    {
    return "<div align=right>斑竹于"+reply_time+"回复</div>";
    }
    else
    return "";
    }
      

  5.   

    可是如果在repeater的ItemDataBound事件里写代码的话,<% if (xxxx){ %>    //xxxx是我想要的条件语句
    <div align="right">版主于<%# DataBinder.Eval(Container.DataItem,"msg_reply_time") %>
    回复<br>
    </div>
    <% } %>我中间的那些html代码又怎么实现呢 ?
      

  6.   

    <%# DataBinder.Eval(Container.DataItem,"score") %>
    修改为
    <asp:Label ID="score" Runat="server"><%# DataBinder.Eval(Container.DataItem,"score1") %></asp:Label>
    然后加上REPEATER控件ItemDataBound方法的代码
    if (e.Item.ItemType==ListItemType.Item){
    if(Convert.ToInt16(DataBinder.Eval(e.Item.DataItem, "score1"))<60)((Label)e.Item.FindControl("score1")).ForeColor=Color.Red;
    }
      

  7.   

    建议: guanvee(CSDN上一个迷途小猪儿) 的方法:<%#func( DataBinder.Eval(Container.DataItem,"msg_reply").ToString()) %>
    在后台编写func函数,想怎么处理就怎么处理,想返回什么就返回什么,注意该函数要public
      

  8.   

    大家还是先看看我这一段的代码吧(里面会产生一个Literal控件,就是这个比较麻烦)<% if (true){ %>
      <table width="95%" border="0" cellspacing="1" cellpadding="5"><tr>
      <td style="word-break:break-all" bgcolor="#E0E6EF" class="top">
      <asp:Literal id="Literal3" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"msg_reply") %>'>
      </asp:Literal>
      <hr size="1" noshade align="center" width="98%">
      <div align="right">版主于<%# DataBinder.Eval(Container.DataItem,"msg_reply_time") %>
    回复<br>
      </div>
      </td>
      </tr>
      </table>
    <% } %>