Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET中继器评估_Asp.net - Fatal编程技术网

ASP.NET中继器评估

ASP.NET中继器评估,asp.net,Asp.net,我正在尝试在.aspx页面中执行以下代码: <asp:Repeater ID="rptComentarios" runat="server"> <ItemTemplate> <% if (Convert.ToInt32(Eval("int_tipo")) == 1) { %> <di

我正在尝试在.aspx页面中执行以下代码:

<asp:Repeater ID="rptComentarios" runat="server">
            <ItemTemplate>
                <% if (Convert.ToInt32(Eval("int_tipo")) == 1)
                   { %>
                                        <div class="resp">
            <div class="top">
            </div>
            <div class="cont-resp">
                <h3>
                    <%# Eval("txt_nome") %></h3>
                <p>
                 <%# Eval("txt_comentario") %></p>
            </div>
        </div>
                   <% }
                   else
                   {%>
                               <div class="usuario">
            <div class="top">
            </div>
            <div class="cont-usuario">
                <h3>
                       <%# Eval("txt_nome") %></h3>
                <p>
                    <%# Eval("txt_comentario") %></p>
            </div>
        </div>
                   <% } %>
            </ItemTemplate>
            </asp:Repeater>
它在第一行抛出运行时异常:

  <% if (Convert.ToInt32(Eval("int_tipo")) == 1)
System.InvalidOperationException:数据绑定方法(如Eval、XPath和Bind)只能在数据绑定控件的上下文中使用


怎么了?有什么想法吗?

我想应该有一个标志来标示这个围墙

或者尝试完整的评估版本

<%# if (Convert.ToInt32(DataBinder.Eval(Container.DataItem, "int_tipo"))
                                                                    == 1) { %>

我认为围墙需要有一个标志

或者尝试完整的评估版本

<%# if (Convert.ToInt32(DataBinder.Eval(Container.DataItem, "int_tipo"))
                                                                    == 1) { %>

我遇到了类似的问题,以下代码对我有效:

<asp:Repeater ID="rptComentarios" runat="server">
  <ItemTemplate>

    <asp:PlaceHolder ID="placeholderBlaBlaBla" runat="server" Visible='<%# Convert.ToInt32(Eval("int_tipo")) == 1 %>'>
      Your optional HTML
    </asp:placeholder>

    Other HTML

  </ItemTemplate>
</asp:Repeater>
还有一些评论:

请注意,单引号用于定义asp:placeholder的值可见属性。我也试过双引号,但都不起作用

任何时候你想要得到一些可选的显示HTML,你应该使用一个控件来显示/隐藏它。asp:占位符可以很好地用于此目的。永远不要这样做——这是邪恶的


用于在中继器内计算或显示表达式。这些表达式可以显示为HTML,也可以作为服务器端控件的属性传递。您不能在其内部使用if。

我遇到了类似的问题,以下代码对我有效:

<asp:Repeater ID="rptComentarios" runat="server">
  <ItemTemplate>

    <asp:PlaceHolder ID="placeholderBlaBlaBla" runat="server" Visible='<%# Convert.ToInt32(Eval("int_tipo")) == 1 %>'>
      Your optional HTML
    </asp:placeholder>

    Other HTML

  </ItemTemplate>
</asp:Repeater>
还有一些评论:

请注意,单引号用于定义asp:placeholder的值可见属性。我也试过双引号,但都不起作用

任何时候你想要得到一些可选的显示HTML,你应该使用一个控件来显示/隐藏它。asp:占位符可以很好地用于此目的。永远不要这样做——这是邪恶的

用于在中继器内计算或显示表达式。这些表达式可以显示为HTML,也可以作为服务器端控件的属性传递。你不能在里面使用if。

if不能在里面使用这个答案是错误的。人们投票支持它的原因对我来说是个谜……如果不能在这个答案中使用,那就错了。人们投票的原因对我来说是个谜。。。