ASP.NET在列表视图中使用带有Container的If语句

AJM*_*AJM 1 asp.net data-binding templates listview codeblocks

在我的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>
<% } %>
Run Code Online (Sandbox Code Playgroud)

Meh*_*ari 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>
Run Code Online (Sandbox Code Playgroud)