none
[RESOLVIDO] Coleção Controls não pode ser modificada porque os controles contêm blocos de código (ou seja, <% ... %>) RRS feed

  • Pergunta

  • Olá amigos, 

    Estou enfrentando um problema na minha aplicação.

    Resolvi colocar AjaxModalPopup em uma das minhas páginas, para melhorar a utilização em smartphones.
    Acontece que utilizo scripts para utilizar a função footable, para redimensionar um gridview com base no tamanho da tela.

    Depois que implementei o modal do ajax, aparece o erro que está no título da thread:

    Coleção Controls não pode ser modificada porque os controles contêm blocos de código (ou seja, <% ... %>)

    Meus scripts estão assim dentro da tag <head>
    <script>
                $(function () {
                    $('#<%= gvTR902.ClientID%>').footable()
                });
    
                $(function () {
                    $('#<%= gvGrade.ClientID%>').footable()
                });
    
                $(function () {
                    $('#<%= gvAmostras.ClientID%>').footable()
                });
    
                $(function () {
                    $('#<%= gvVolumes.ClientID%>').footable()
                });
    
                function openModalGrade() {
                    $('#popupGrade').modal('show');
                }
    </script>
    Minha pergunta é: Como eu faço para utilizar minhas functions para redimensionar os gridviews utilizando AjaxControlToolkit?
    Creio que seja por isso que não estou conseguindo utilizar.

    No início da página eu faço o seguinte:
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc2" %>
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc3" %>
    Alguém pode me dar uma luz? 

    Obrigado!


    Cleverson Darsie


    quinta-feira, 16 de fevereiro de 2017 10:42

Respostas

  • Bom dia Robson, 

    Não consegui fazer funcionar. O meu cenário é bem complicado e não encontrei em lugar nenhum uma ajuda que possa se enquadrar nele.

    Tenho UpdatePanel, Modal Popup com UpdatePanel e Footable...

    Quando eu conseguia fazer alguma coisa funcionar, outra não funcionava.

    Desisti de usar o modal e criei uma nova página que exibe as informações que eu precisava que fosse exibidas no Modal.

    Como eu tava com pressa e precisava entregar o produto, fiz dessa forma.

    Cleverson Darsie

    quarta-feira, 22 de fevereiro de 2017 13:55

Todas as Respostas

  • Pessoal, 
    Com base em algumas pesquisas, fiz uma alteração no código.

    Invés de colocar os scripts dentro da tag <head> eu coloquei dentro da tag <form>. 
    Dentro do meu UpdatePanel eu coloquei o <script> para chamar os outros durante a execução.

    O erro não está mais acontecendo, mas as funções não estão sendo executadas.

    Ficou assim:

    <script type="text/javascript" >
                function BindEvents() {
                    $(document).ready(function () {
                        $(function () {
                            $('#<%= gvTR902.ClientID%>').footable()
                        });
    
                        $(function () {
                            $('#<%= gvGrade.ClientID%>').footable()
                        });
    
                        $(function () {
                            $('#<%= gvAmostras.ClientID%>').footable()
                        });
    
                        $(function () {
                            $('#<%= gvVolumes.ClientID%>').footable()
                        });
                    })
                }
    </script>
    E dentro do UpdatePanel eu coloquei assim:
     <asp:UpdatePanel ID="upTR902" runat="server" UpdateMode="Conditional">
                    <ContentTemplate>
                        <script type="text/javascript">
                            Sys.Application.add_load(BindEvents);
                        </script>
    //resto do código
                    </ContentTemplate>
                    <Triggers>
                        <asp:AsyncPostBackTrigger ControlID="gvTR902" />
                        <asp:AsyncPostBackTrigger ControlID="btnFecharGrade" />
                        <asp:AsyncPostBackTrigger ControlID="btnFecharAmostras" />
                        <asp:AsyncPostBackTrigger ControlID="btnFecharVolumes" />
                    </Triggers>
    </asp:UpdatePanel>
    Por que os scripts não estão funcionando? Alguém pode ajudar?


    Cleverson Darsie

    quinta-feira, 16 de fevereiro de 2017 13:36
  • Bom dia Cleverson,

    Conseguiu fazer funcionar?

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 22 de fevereiro de 2017 13:11
    Moderador
  • Bom dia Robson, 

    Não consegui fazer funcionar. O meu cenário é bem complicado e não encontrei em lugar nenhum uma ajuda que possa se enquadrar nele.

    Tenho UpdatePanel, Modal Popup com UpdatePanel e Footable...

    Quando eu conseguia fazer alguma coisa funcionar, outra não funcionava.

    Desisti de usar o modal e criei uma nova página que exibe as informações que eu precisava que fosse exibidas no Modal.

    Como eu tava com pressa e precisava entregar o produto, fiz dessa forma.

    Cleverson Darsie

    quarta-feira, 22 de fevereiro de 2017 13:55