ASP.Net重复器控件-使用条件语句

6

我正在尝试在重复器控件中使用if语句,但是在if语句上收到了InvalidOperationException。

我的目标是仅在当前项目的UserType设置为Admin时,在重复器内运行一段代码块。

     <asp:Repeater ID="rptSingleValueHeaders" runat="server">
         <ItemTemplate>
             <% if (Eval("UserType").ToString() == "Admin") { %>
                 <div>
                     do stuff here
                 </div>
            <% } else { %>
                 <div>
                     do other stuff
                 </div>
            <% } %>
         </ItemTemplate>
     </asp:Repeater>

我的数据源在aspx.cs上定义,并包含一个名为UserType的属性,类型为字符串。如果需要提供更多细节,请告诉我。谢谢。


这个东西正在显示HTML标记。 - noclist
你所引用的SO中的答案并不适用,因为我正在尝试评估来自我的数据源的属性。 - noclist
1
你的问题已经是一个重复问题了。你可以在链接中找到解决方案。如果没有,还有一些其他符合你要求的问题。只需搜索,你就能找到它们。 - emerson.marini
来自ASP.NET论坛的一个帖子:http://forums.asp.net/t/1574423.aspx?Forgot+how+to+use+if+statement+in+repeater+item+template - emerson.marini
1个回答

16

您可以使用服务器端可见性:

<ItemTemplate>
    <div runat="server" visible='<%# (Eval("UserType").ToString() == "Admin") %>'>
        I show this HTML
    </div>
    <div runat="server" visible='<%# (Eval("UserType").ToString() != "Admin") %>'>
        I show this other HTML
    </div>
</ItemTemplate>

1
接收到解析器错误 ---> 无法从其字符串表示形式“<%(Eval(\“UserType \”)。ToString()== \“Admin \”)%>”创建System.Boolean类型的对象以设置“Visible”属性。 - noclist
编辑后,您可以检查一下吗? - Tushar
2
太棒了!谢谢你! - Jeff Blumenthal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接