1

在我的 ListView 中,我想在 aspx 页面上的 if 语句中使用 Container 的属性,如下所示。但我收到“当前上下文中不存在名称‘容器’”错误。我不能在 if 语句中使用 Container 吗?

   <ItemTemplate>
        <tr>
          <td>
            <% if (EDIT_INDEX == (((ListViewItem)Container) as ListViewDataItem).DataItemIndex )
               {%>
            <span id="row<%#(((ListViewItem)Container) as ListViewDataItem).DataItemIndex %>"
Some Stuff
       </span>
<% } %>
4

1 回答 1

8

Container仅在绑定表达式中可用。使用<%# .. %>带有三元运算符 ( ?:) 和字符串连接的块来实现相同的目的。

我使用的另一个解决方案是将内容放在不同的控件中,这些<asp:Placeholder>控件的Visible属性绑定到不同的布尔表达式,并将不同的可能表示放在这些占位符中。就像是:

<ItemTemplate>
    <tr>
      <td>
   <asp:Placeholder runat="server" 
    Visible='<%# EDIT_INDEX == (((ListViewItem)Container) as ListViewDataItem).DataItemIndex %>'>
        <span id='row<%#(((ListViewItem)Container) as ListViewDataItem).DataItemIndex %>'>
            Some Stuff
        </span>
   </asp:Placeholder>
于 2009-06-08T12:45:35.367 回答