none
Updatepanel não funciona com listview/gridview no evento row/item command RRS feed

  • Pergunta

  • Pessoal, tenho um listview dentro de um updatepanel, onde dentro do listview há também um linkbutton que ao ser clicado disparava o itemcommand do listview, porém, este evento ignora o updatepanel, e da o refresh na página. Alguém saberia me explicar o porque e como arrumar?

    abaixo o meu código

    (o scriptmanager foi declarado)

    <asp:UpdatePanel ID="UpsdatePanel1" runat="server">
                <ContentTemplate>
                    <asp:ListView runat="server" ID="lvModels" OnItemCommand="actionLv">
                        <ItemTemplate>
                            <div class="box-model">
                                <asp:LinkButton runat="server" ID="lbModel" CommandArgument='<%#Eval("idperfil") %>' CommandName="showmodel" >
                                        <img alt="" src="<%#Eval("foto") %>"/>
                                </asp:LinkButton>
                                <div class="info"><%#Eval("nome") %> <%#Eval("sobrenome") %></div>
                            </div>
                        </ItemTemplate>
                    </asp:ListView>
                </ContentTemplate>
            </asp:UpdatePanel>

    Grato desde já


    -------------------------------------- Se a resposta for útil marque como resposta

    terça-feira, 14 de fevereiro de 2012 14:22

Todas as Respostas

  • Consegui resolver o problema atribuindo ClientIDMode="AutoID" ao linkbutton. Porém meu problema agora é outro. 

    Após clicar no linkbutton eu executo uma função jquery que faz com que a página role para baixo, porém ao terminar o post do update ele trás a página de volta para cima, alguem saberia como resolver este segundo problema?


    -------------------------------------- Se a resposta for útil marque como resposta

    terça-feira, 14 de fevereiro de 2012 16:33
  •   Boa tarde, segue uma sugestão:

        É possível você executar código javascript antes e/ou depois da execução da requisição ajax, com isso você pode mover o foco à um elemento do listview ou à uma ancora quando terminar a requisição do ajax.
       
        No evento onClientClick do asp.net / onClick do javascript, você grava em um campo hidden do formulário ou em variável qual que o usuário clicou, assim você poderá resgatar o valor no final da requisição ajax e mover a tela.
     
        Exemplo para adicionar o código javascript no final da execução do ajax:

    var gerenciadorAjax = Sys.WebForms.PageRequestManager.getInstance();
    
    //Adiciona o manipulador do evento no endRequest
    gerenciadorAjax.add_endRequest(OnEndRequest);
    
    function OnEndRequest(sender, args) {
    /* Aqui você coloca o código javascript para mover o foco/rolar a tela, por exemplo */
    }
    

      Pode existir algo bem mais simples, mas isso foi o que me veio em mente no momento.
     
      Espero ter lhe ajudado ou ao menos ter lhe dado uma luz para a solução.
          

    Referência da Classe Sys.WebForms.PageRequestManager:http://msdn.microsoft.com/pt-br/library/bb311028.aspx


    Thiago Rogerio Site: www.thiagorogerio.com.br Email: thiagorogeriobr@hotmail.com

    quarta-feira, 15 de fevereiro de 2012 15:49