2009-06-08 2 views
1

내 ListView에서 아래와 같이 aspx 페이지의 if 문에서 컨테이너의 속성을 사용하려고합니다. 하지만 "컨테이너의 이름이 현재 컨텍스트에 존재하지 않습니다"오류가 발생합니다. "오류가 발생했습니다. if 문에서 Container를 사용할 수 있습니까?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 진 연산자 (?:) 및 문자열 연결을 사용하십시오.

내가 사용한 또 다른 솔루션은 서로 다른 부울 표현식에 바인딩 된 Visible 속성이있는 다른 <asp:Placeholder> 컨트롤에 항목을 넣고 이러한 가능한 자리 표시를 해당 자리 표시 자 안에 넣는 것입니다. 다음과 같음 :

<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

나는 똑같습니다. –