none
ASP.NET Development Server x IIS 7: Como passar parâmetros para função javascript via attributes.add()? RRS feed

  • Pergunta

  • Pessoal, boa tarde,

    estou com um problema e gostaria da ajuda de vocês para resolvê-lo.

    Tenho vários GridViews dinâmicos em um controle Repeater. Cada GridView possui checkboxes de permissão de leitura e de escrita para cada Tipo de Documento da minha aplicação ASP.NET 4.0. Ao clicar no checkbox do cabeçalho, todos os demais checkboxes abaixo são des/marcados.

    Abaixo está um printscreen da minha tela:

    Esse código do checkbox funciona normalmente no ASP.NET Development Server, mas não no IIS 6 e 7. Já tentei de tudo mas não deu jeito. Abaixo está a minha função jQuery que marca os checkboxes da coluna e o code-behind que adiciona o evento onclick nos checkboxes do cabeçalho:

    <script src="/Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
    <script type="text/javascript">
    
            function toggleCheck(grid, nomeCheck, tipo) {
                var ischecked = $("#" + nomeCheck).attr("checked");
    
                alert(grid + "\n\n" + nomeCheck + "\n\n" + ischecked + "\n\n" + tipo);
    
                if (tipo == "leitura") {
                    $("#" + grid).find("input:checkbox[id*=CheckBoxLeitura]").attr("checked", function () {
                        this.checked = ischecked;
                    });
                }
                if (tipo == "gravacao") {
                    $("#" + grid).find("input:checkbox[id*=CheckBoxGravacao]").attr("checked", function () {
                        this.checked = ischecked;
                    });
                }
            }
        </script>

    Agora o Code-behind:

    chkLeitura.Attributes.Add(
    "onclick",
    "toggleCheck('" + gridPermissoes.ClientID + "', '" 
    + chkLeitura.ClientID + "', 'leitura')");

    Quando vejo o código-fonte da página renderizada, as aspas simples são convertidas em &#39; por questão de segurança, mas funciona mesmo assim no Development Server! Quando publico no IIS 7 e clico no checkbox do cabeçalho, nada acontece, nem mesmo o alert() do javascript! :S

    Se alguém tiver alguma dica de como resolver isso, por favor me ajude!

    Valeu!


    Joao Paulo de Lima Braga

    sexta-feira, 16 de novembro de 2012 18:27

Todas as Respostas

  • além do servidor llS, o serviço ftp também é intalado e permite que um site FTP seja adicionado á porta TCP 21, padrão para

    esse protocolo. acompanhe o procedimento seguinte para adicionar e configurar o servidor FTP.

    acesse o painel de controle   >   ferramentas administrativas.

    clique duas vezes em gerenciador do serviços de informações da internet (llS)

    clique com o botão direito do mouse na opção raiz do console  SERVIDOR

    servidor/padrão e selecione adicionar site FTP.

    o assistente para adicionar site FTP é iniciado. em nome do site FTP digite

    servidor FTP. em caminho físico digite c:\INETPUB\FTPROOT. click em avançar.


    edd.drivers

    sexta-feira, 23 de novembro de 2012 20:37
  • Olá,

    Vou postar aqui a a solução que encontrei, usando jQuery:

    Minha função javascript ToggleCheck:

    function toggleCheck(grid, nomeCheck, tipo) {
                var ischecked = $("#" + nomeCheck).attr("checked");
                if (tipo == "leitura") {
                    $("#" + grid).find("input:checkbox.leitura").attr("checked", function () {
                        this.checked = ischecked;
                    });
                }
                if (tipo == "gravacao") {
                    $("#" + grid).find("input:checkbox.gravacao").attr("checked", function () {
                        this.checked = ischecked;
                    });
                }
            }

    E no ItemTemplate eu defino uma classe CSS com o nome "leitura", para ser usada pelo jQuery:

    <ItemTemplate>
        <asp:CheckBox ID="CheckBox2" CssClass="leitura" class="leitura" Checked='<%# Eval("SomenteLeitura") %>' runat="server" />
    </ItemTemplate>

    E no code-behind, Eu adiciono o evento onclick para o checkbox no cabeçalho:

    chkLeitura.Attributes.Add("onclick", "toggleCheck('" + gridPermissoes.ClientID + "', '" + chkLeitura.ClientID + "', 'leitura')");

    Aí deu tudo certo! :D

    segunda-feira, 6 de julho de 2015 19:41