我用repeater 做了一个留言板,这是前台代码中的一部分.
sex 字段中 显示出来的是 "男"或者"女"
现在我想用图片来代替文字
如果 是 "男" ,就用图片 C:\男.jpg 代替
如果是"女",就用图片  C:\女.jpg 代替
请问应该怎样实现?
<asp:repeater id="Repeater1" runat="server">
<ItemTemplate>
<td>
<%# DataBinder.Eval(Container.DataItem,"sex")%>
</td>
</ItemTemplate>

解决方案 »

  1.   

    <asp:repeater id="Repeater1" runat="server">
    <ItemTemplate>
    <td>
    <%# ConvertImg((string)DataBinder.Eval(Container.DataItem,"sex"))%>
    </td>
    </ItemTemplate>在后台代码中:public string ConvertImg(string str)
    {   string url="";
        if(str.Trim()=="男"
        {
          url="<img src='C:\男.jpg'";
         }
       else
        {
          url="<img src='C:\女.jpg'";
        }
       return url;
    }
      

  2.   

    我加了,还是不行啊,不起作用.
    if(str.Trim()=="男")
    这一句是不是先要用 SqlDataReader 从数据库中读取数据,再付值给 str 啊.
      

  3.   

    页面代码
    <%# FmtSex(DataBinder.Eval(Container.DataItem,"sex")) %>
    后台代码
    <script language="c#" runat="server">
    public string FmtSex(object str){
        string strTmp=str.ToString();
        if(strTmp=="男"){
            return "<img src='c:\男.jpg'>";
        }
        else{
            return "<img src='c:\女.jpg'>";
        }
    }
    </script>
      

  4.   

    或者:<%# DataBinder.Eval(Container.DataItem, "sex").ToString()=="男"?"c:\男.jpg":"c:\女.jpg" %>
      

  5.   

    还是不行啊,这一句显示错误了.
    <%# DataBinder.Eval(Container.DataItem, "sex").ToString()=="男"?"c:\男.jpg":"c:\女.jpg" %>下面这一段的这一句  img src='c:\男.jpg'   显示:无法识别的转义序列
    <script language="c#" runat="server">
    public string FmtSex(object str){
        string strTmp=str.ToString();
        if(strTmp=="男"){
            return "<img src='c:\男.jpg'>";
        }
        else{
            return "<img src='c:\女.jpg'>";
        }
    }
    </script>
      

  6.   


    把"<img src='c:\男.jpg'>"换成"<img src='c:\\男.jpg'>"  后面的单引号是路径,你最好用相对路径,如在当前站点的images下的,可用images/男.jpg
    str是不用赋值的,不过在这之前reapeater对象先绑定到数据源,我已经测试过了