ASP.Net C#ListView内联条件

时间:2011-03-15 15:13:20

标签: c# asp.net

有一个绑定到ListView的对象列表,用于创建这些项的好列表。在这个ListView中,我有1列,它具有显示特定字符​​串的特定条件。这可能是使用内联代码,还是应该使用代码隐藏来解决?

这就是我想做的事情:

<% if (((Recipe)Container.DataItem).Status == RecipesModel.REJECTED) { %>
Something goes here
<% } %>

但是这会返回此异常:

The name 'Container' does not exist in the current context

编辑:此代码在<ItemTemplate>

中使用

编辑2 :我发现自己使用以下代码解决了这个问题:

<asp:PlaceHolder id="place_public" runat="server" Visible='<%# ((Recipe)Container.DataItem).Status == RecipesModel.VALIDATED %>'>
Something here
</asp:PlaceHolder>

3 个答案:

答案 0 :(得分:0)

您可能希望在.aspx页面中导入容器类的命名空间。 例如:

<%@ Import Namespace="Container Class namespace" %> 

答案 1 :(得分:0)

您不能在数据绑定上下文之外使用Container.DataItem

尝试类似

的内容
<%# Container.DataItem ... %>

例如:

<%# ((String)Container.DataItem).ToUpper() == "test" ? "IsTest" : "NotTest" %>

答案 2 :(得分:0)

看起来您正在尝试在其范围之外使用Container对象。你可以发布剩下的代码,以便我们可以看到页面上发生了什么吗?