<asp:Repeater ID="Repeater1" runat="server">
  <ItemTemplate>
    <tr>
      <td><a href="javascript:;"> <%# DataBinder.Eval(Container.DataItem, "id")%></a></td>
      <td><%# DataBinder.Eval(Container.DataItem, "name")%></td>
      <td><%# DataBinder.Eval(Container.DataItem, "addr")%></td>
   </tr>
  </ItemTemplate>
  <FooterTemplate>
    <tr id="tr1" runat="server" Visible="<%#Repeater1.Items.Count==0 %>">
      <td colspan="3" rowspan="2" style="color:Red; text-align:center; font-weight:bold; height:60px;">
      对不起,没有您要的数据</td>
    </tr>
  </FooterTemplate>
</asp:Repeater>编译错误
    说明:在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。
    编译器错误消息: </b>BC30201: 应为表达式。<br><br>
    源错误: 78行
    行 76: </ItemTemplate>
    行 77:<FooterTemplate>
    行 78:<tr id="tr1" runat="server" Visible="<%#Repeater1.Items.Count==0 %>">
    行 79: <td colspan="3" rowspan="2" style="color:Red; text-align:center; font-weight:bold; height:60px;">
    行 80: 对不起,没有您要的数据</td>
各位大侠帮我解决下,到底是什么原因啊

解决方案 »

  1.   


    Visible="<%#Repeater1.Items.Count==0 %>"改成Visible="<%= Repeater1.Items.Count==0 %>"试试
      

  2.   


    <tr id="tr1" runat="server" Visible='<%#Repeater1.Items.Count==0?false:true%>'>
      

  3.   

    这样是绝对没问题的,如下:<tr id="tr1" runat="server" Visible='<%#bool.Parse((Repeater1.Items.Count==0).ToString())%>'>
      

  4.   


    不行,无法从其“Visible”属性的字符串表示形式“<%=Repeater1.Items.Count==0 %>”创建“System.Boolean”类型的对象。
      

  5.   

    编译器错误消息: </b>BC30451: 未声明“bool”。它可能因其保护级别而不可访问。
      

  6.   


    <asp:Repeater ID="Repeater1" runat="server">
                                            <ItemTemplate>
                                                <tr>
                                                    <td><a href="javascript:;"> <%# DataBinder.Eval(Container.DataItem, "id")%></a></td>
                                                    <td><%# DataBinder.Eval(Container.DataItem, "name")%></td>
                                                    <td><%# DataBinder.Eval(Container.DataItem, "addr")%></td>
                                                </tr>
                                            </ItemTemplate>
                                            <FooterTemplate>
                                                <tr id="tr1" runat="server" Visible="<%#bool.Parse((Repeater1.Items.Count==0).ToString())%>">
                                                <td colspan="3" rowspan="2" style="color:Red; text-align:center; font-weight:bold; height:60px;">
                                                对不起,没有您要的数据</td>
                                                </tr>
                                            </FooterTemplate>
                                        </asp:Repeater>
      

  7.   

    你们都被绕进去了,注意到 runat="server" 没有,是服务器控件了,怎么写绑定啊,想隐藏 tr是吧?
    这样:
    <tr id="tr1"  <%# (Repeater1.Items.Count==0)?"":"style='display:none;'"   >
      

  8.   

    使用Convert.ToBoolean这个函数,改造一下<tr id="tr1" runat="server" Visible='<%#Convert.ToBoolean((Repeater1.Items.Count==0).ToString())%>'>
      

  9.   

    你的和我提供给你的不一样啊,Visible两端是单引号,不是双引号<asp:Repeater ID="Repeater1" runat="server">
      <ItemTemplate>
      <tr>
      <td><a href="javascript:;"> <%# DataBinder.Eval(Container.DataItem, "id")%></a></td>
      <td><%# DataBinder.Eval(Container.DataItem, "name")%></td>
      <td><%# DataBinder.Eval(Container.DataItem, "addr")%></td>
      </tr>
      </ItemTemplate>
      <FooterTemplate>
      <tr id="tr1" runat="server" Visible="<%#bool.Parse((Repeater1.Items.Count==0).ToString())%>">
      <td colspan="3" rowspan="2" style="color:Red; text-align:center; font-weight:bold; height:60px;">
      对不起,没有您要的数据</td>
      </tr>
      </FooterTemplate>
      </asp:Repeater>
    ==============》
    <asp:Repeater ID="Repeater1" runat="server">
      <ItemTemplate>
      <tr>
      <td><a href="javascript:;"> <%# DataBinder.Eval(Container.DataItem, "id")%></a></td>
      <td><%# DataBinder.Eval(Container.DataItem, "name")%></td>
      <td><%# DataBinder.Eval(Container.DataItem, "addr")%></td>
      </tr>
      </ItemTemplate>
      <FooterTemplate>
      <tr id="tr1" runat="server" Visible='<%#bool.Parse((Repeater1.Items.Count==0).ToString())%>'>
      <td colspan="3" rowspan="2" style="color:Red; text-align:center; font-weight:bold; height:60px;">
      对不起,没有您要的数据</td>
      </tr>
      </FooterTemplate>
      </asp:Repeater>
      

  10.   


    编译器错误消息: </b>BC30201: 应为表达式。
      

  11.   

    编译器错误消息: </b>BC30451: 未声明“bool”。它可能因其保护级别而不可访问。一样的错误
      

  12.   


    搜索没有这个数据时,显示tr,tr里显示“ 对不起,没有您要的数据”
      

  13.   

    呵呵,兄弟,首先你这个服务器控件数据绑定是语法错误,通不过编译!!!
    其次就算能通过编译,没有数据的时候你觉得你的foottemplate会有输出吗?搜不到数据提示为空,你可以整一个label,为空时候显示就可以了,绑定的话实现不了的。
      

  14.   

    <tr id="tr1" runat="server" Visible='<%#bool.Parse((Repeater1.Items.Count==0).ToString())%>'>
    试试
      

  15.   

    有两种办法:一是把tr1服务器控件,在后台CS代码里操作嘛,是判断是否有值在显示,若是绑定的数据为空就不显示。
    二是用老的ASP方法咯。
    <asp:Repeater ID="Repeater1" runat="server">
       <ItemTemplate>
       <tr>
       <td><a href="javascript:;"> <%# DataBinder.Eval(Container.DataItem, "id")%></a></td>
       <td><%# DataBinder.Eval(Container.DataItem, "name")%></td>
       <td><%# DataBinder.Eval(Container.DataItem, "addr")%></td>
       </tr>
       </ItemTemplate>
       <FooterTemplate>
    〈% if(Repeater1.Items.Count==0){ %〉
       <tr id="tr1">
       <td colspan="3" rowspan="2" style="color:Red; text-align:center; font-weight:bold; height:60px;">
       对不起,没有您要的数据</td>
       </tr>
    <%}%>
       </FooterTemplate>
    </asp:Repeater>