2009-06-08 1 views
1

ListViewで、以下のようにaspxページのifステートメントでContainerのプロパティを使用します。しかし、私は "名前 'コンテナ'は現在のコンテキストに存在しません"というエラーが表示されます。 if文でコンテナを使用できませんか?ASP.NETリストビューのContainerを使用したIfステートメント

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

答えて

8

Containerは、バインディング式でのみ使用できます。 <%# .. %>ブロックと3項演算子(?:)を使用し、同じことを達成するには文字列連結を使用してください。

私が使用したもう一つの解決策は、異なるブール式にバインドされた異なるのコントロールに物を入れ、それらのプレースホルダー内に異なる可能な表現を入れることです。何かのように:

<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> 
+0

私は同じことに同意します... –

関連する問題