2013-12-23 4 views
0

ItemCommand 이벤트에서 트리거하려는 버튼 열을 삽입 한 ListView를 만들었지 만 버튼을 누르면 버튼로드가 발생하지만 아무 것도 발생하지 않습니다 (ItemCommand 이벤트는 발생하지 않음). 화재).Listvew ItemCommand가 실행되지 않음

<asp:ListView ID="ListView_documenti" runat="server" OnLoad="carica_ListView" OnItemCommand="esegui_comando"> 
<LayoutTemplate> 
    <table id="Table1" runat="server" class="ListViewUCSS"> 
     <tr id="Tr1" runat="server"> 
      <td id="Td1" runat="server"> 
       <table ID="itemPlaceholderContainer" runat="server" border="0" style="" > 
        <tr id="Tr2" runat="server" class="ListViewUHEADER"> 
         <th id="Th0" runat="server" style="width:40%">Nome File</th> 
         <th id="Th3" runat="server" style="width:20%">Vedi</th>        
        </tr> 
        <tr ID="itemPlaceholder" runat="server"></tr> 
       </table> 
      </td> 
     </tr> 
     <tr id="Tr3" runat="server"> 
      <td id="Td2" runat="server" style=""> 
      </td> 
     </tr> 
    </table> 
</LayoutTemplate> 
<ItemTemplate> 
    <tr class="ListViewUTENTI"> 
     <td><asp:Label ID="nomeLabel" runat="server" Text='<%# Eval("nome") %>' /></td> 
     <td><asp:button ID="vediDocButton" runat="server" Text="Vedi documento" CommandName="vedi_doc" /></td>    
    </tr> 
</ItemTemplate> 
<AlternatingItemTemplate> 
    <tr class="ListViewUTENTIALTERNATING"> 
     <td><asp:Label ID="nomeLabel" runat="server" Text='<%# Eval("nome") %>' /></td> 
     <td><asp:button ID="vediDocButton" runat="server" Text="Vedi documento" CommandName="vedi_doc" /></td>   
    </tr> 
</AlternatingItemTemplate> 
<EmptyDataTemplate> 
    <table id="Table1" runat="server" style=""> 
     <tr> 
      <td>Nessun documento caricato per il seguente trust.</td> 
     </tr> 
    </table> 
</EmptyDataTemplate>  

이것은 또한 귀하의 onload 이벤트 코드를 변경할 수 ItemCommand 이벤트

protected void esegui_comando(object sender, ListViewCommandEventArgs e) 
    { 
     ListViewItem item = e.Item; 
     Label etichetta = (Label)item.FindControl("nomeLabel"); 
     etichetta = (Label)e.Item.FindControl("nomeLabel"); 
     //a questo punto capisco che button ha scatenato l'evento 
     switch(e.CommandName) 
     { 
      case "vedi_doc": 
       //indirizzo la pratica verso la pagina di visione delle pratiche 
       Response.Redirect("../scarica_documento.aspx?n=" + etichetta+"&c="+cartella); 
       break; 

     } 
    } 
+0

코드 숨김에서 목록보기를 어디서 어떻게 바인딩합니까? 모든 페이지로드시 리 바인딩 되나요? –

+0

필자는 ListView를 onLoad 이벤트 ("carica_ListView"기능 포함)에 바인딩하고 모든 페이지로드시에 실행합니다. –

+0

이제 "carica_ListView"함수를 init 이벤트로 이동하고 ItemCommand 이벤트가 작동합니다. –

답변

1

에 관련된 부분 뒤에 코드입니다 :

protected void carica_ListView(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
    //Your code 
    } 
} 

것은이 방지됩니다 다시 바인딩에 대한 ListView 바인딩.