none
Problemas entre TabContainer e Javascript RRS feed

  • Pergunta

  • Olá a todos,

    Estou tendo o um problema com o TabContainer e preciso de uma ajuda, na primeira aba eu tenho textboxs com javascript keyup, na segunda aba eu tenho um gridview com o botão de alterar.
    Ao clicar no botão alterar deste gridview o evento keyup para de funcionar nos textbox, já tentei mudar o evento keyup, e não acontece nada, no botão incluir que está fora do container funciona normalmente.

    Segue o código:


    <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <script src="js/jquery.min.js" type="text/javascript"></script>  
        <link rel="stylesheet" href="css/chosen.css" />
        <script src="js/chosen.jquery.js" type="text/javascript"></script> 

        <script type="text/javascript">       
            // ´PARA OS COMBOS //
            /* Retain element focus after UpdatePanel postback
            ***************************************************/
            jQuery(function ($) {
                var focusedElementSelector = "";
                var prm = Sys.WebForms.PageRequestManager.getInstance();

                prm.add_beginRequest(function (source, args) {
                    var fe = document.activeElement;
                    focusedElementSelector = "";

                    if (fe != null) {
                        if (fe.id) {
                            focusedElementSelector = "#" + fe.id;
                        } else {
                            // Handle Chosen Js Plugin
                            var $chzn = $(fe).closest('.chosen-container[id]');
                            if ($chzn.size() > 0) {
                                focusedElementSelector = '#' + $chzn.attr('id') + ' input[type=text]';
                            }
                        }
                    }
                });

                prm.add_endRequest(function (source, args) {
                    if (focusedElementSelector) {
                        $(focusedElementSelector).focus();
                    }
                });

            });
            /////////////////////        

            //No Load da Página criar o evento keyup
            window.onload = function () {        
                var maincontent = 'MainContent_TabPrincipal_TabDados_';

                //
                id(maincontent + 'txtPrecoTecido1').addEventListener('keyup', function () {
                    var result = total(this.value, id(maincontent + 'txtQtdeTecido1').value);
                    id(maincontent + 'txtCustoVarTecido1').value = String(result.toFixed(2)).formatMoney();
                    CalculaTotal();
                    CalculaCusto();
                    CalculaLucro(id(maincontent + 'txtPercLucro').value, id(maincontent + 'txtTotalCusto').value);
                    CalculaPercLucro(id(maincontent + 'txtPrecoVenda').value, id(maincontent + 'txtTotalCusto').value);
                });

                id(maincontent + 'txtQtdeTecido1').addEventListener('keyup', function () {
                    var result = total(id(maincontent + 'txtPrecoTecido1').value, this.value);
                    id(maincontent + 'txtCustoVarTecido1').value = String(result.toFixed(2)).formatMoney();
                    CalculaTotal();
                    CalculaCusto();
                    CalculaLucro(id(maincontent + 'txtPercLucro').value, id(maincontent + 'txtTotalCusto').value);
                    CalculaPercLucro(id(maincontent + 'txtPrecoVenda').value, id(maincontent + 'txtTotalCusto').value);
                });

                //
                id(maincontent + 'txtPrecoTecido2').addEventListener('keyup', function () {
                    var result = total(this.value, id(maincontent + 'txtQtdeTecido2').value);
                    id(maincontent + 'txtCustoVarTecido2').value = String(result.toFixed(2)).formatMoney();
                    CalculaTotal();
                    CalculaCusto();
                    CalculaLucro(id(maincontent + 'txtPercLucro').value, id(maincontent + 'txtTotalCusto').value);
                    CalculaPercLucro(id(maincontent + 'txtPrecoVenda').value, id(maincontent + 'txtTotalCusto').value);
                });

                id(maincontent + 'txtQtdeTecido2').addEventListener('keyup', function () {
                    var result = total(id(maincontent + 'txtPrecoTecido2').value, this.value);
                    id(maincontent + 'txtCustoVarTecido2').value = String(result.toFixed(2)).formatMoney();
                    CalculaTotal();
                    CalculaCusto();
                    CalculaLucro(id(maincontent + 'txtPercLucro').value, id(maincontent + 'txtTotalCusto').value);
                    CalculaPercLucro(id(maincontent + 'txtPrecoVenda').value, id(maincontent + 'txtTotalCusto').value);
                });

                //
                id(maincontent + 'txtPrecoTecido3').addEventListener('keyup', function () {
                    var result = total(this.value, id(maincontent + 'txtQtdeTecido3').value);
                    id(maincontent + 'txtCustoVarTecido3').value = String(result.toFixed(2)).formatMoney();
                    CalculaTotal();
                    CalculaCusto();
                    CalculaLucro(id(maincontent + 'txtPercLucro').value, id(maincontent + 'txtTotalCusto').value);
                    CalculaPercLucro(id(maincontent + 'txtPrecoVenda').value, id(maincontent + 'txtTotalCusto').value);
                });

                id(maincontent + 'txtQtdeTecido3').addEventListener('keyup', function () {
                    var result = total(id(maincontent + 'txtPrecoTecido3').value, this.value);
                    id(maincontent + 'txtCustoVarTecido3').value = String(result.toFixed(2)).formatMoney();
                    CalculaTotal();
                    CalculaCusto();
                    CalculaLucro(id(maincontent + 'txtPercLucro').value, id(maincontent + 'txtTotalCusto').value);
                    CalculaPercLucro(id(maincontent + 'txtPrecoVenda').value, id(maincontent + 'txtTotalCusto').value);
                });

                //
                id(maincontent + 'txtPrecoForro').addEventListener('keyup', function () {
                    var result = total(this.value, id(maincontent + 'txtQtdeForro').value);
                    id(maincontent + 'txtCustoVarForro').value = String(result.toFixed(2)).formatMoney();
                    CalculaTotal();
                    CalculaCusto();
                    CalculaLucro(id(maincontent + 'txtPercLucro').value, id(maincontent + 'txtTotalCusto').value);
                    CalculaPercLucro(id(maincontent + 'txtPrecoVenda').value, id(maincontent + 'txtTotalCusto').value);
                });

                id(maincontent + 'txtQtdeForro').addEventListener('keyup', function () {
                    var result = total(id(maincontent + 'txtPrecoForro').value, this.value);
                    id(maincontent + 'txtCustoVarForro').value = String(result.toFixed(2)).formatMoney();
                    CalculaTotal();
                    CalculaCusto();
                    CalculaLucro(id(maincontent + 'txtPercLucro').value, id(maincontent + 'txtTotalCusto').value);
                    CalculaPercLucro(id(maincontent + 'txtPrecoVenda').value, id(maincontent + 'txtTotalCusto').value);
                });

                //
                id(maincontent + 'txtPrecoMaoObra').addEventListener('keyup', function () {
                    var result = total(this.value, id(maincontent + 'txtQtdeMaoObra').value);
                    id(maincontent + 'txtCustoVarMaoObra').value = String(result.toFixed(2)).formatMoney();
                    CalculaTotal();
                    CalculaCusto();
                    CalculaLucro(id(maincontent + 'txtPercLucro').value, id(maincontent + 'txtTotalCusto').value);
                    CalculaPercLucro(id(maincontent + 'txtPrecoVenda').value, id(maincontent + 'txtTotalCusto').value);
                });

                id(maincontent + 'txtQtdeMaoObra').addEventListener('keyup', function () {
                    var result = total(id(maincontent + 'txtPrecoMaoObra').value, this.value);
                    id(maincontent + 'txtCustoVarMaoObra').value = String(result.toFixed(2)).formatMoney();
                    CalculaTotal();
                    CalculaCusto();
                    CalculaLucro(id(maincontent + 'txtPercLucro').value, id(maincontent + 'txtTotalCusto').value);
                    CalculaPercLucro(id(maincontent + 'txtPrecoVenda').value, id(maincontent + 'txtTotalCusto').value);
                });

                //
                id(maincontent + 'txtPrecoBordado').addEventListener('keyup', function () {
                    var result = total(this.value, id(maincontent + 'txtQtdeBordado').value);
                    id(maincontent + 'txtCustoVarBordado').value = String(result.toFixed(2)).formatMoney();
                    CalculaTotal();
                    CalculaCusto();
                    CalculaLucro(id(maincontent + 'txtPercLucro').value, id(maincontent + 'txtTotalCusto').value);
                    CalculaPercLucro(id(maincontent + 'txtPrecoVenda').value, id(maincontent + 'txtTotalCusto').value);
                });

                id(maincontent + 'txtQtdeBordado').addEventListener('keyup', function () {
                    var result = total(id(maincontent + 'txtPrecoBordado').value, this.value);
                    id(maincontent + 'txtCustoVarBordado').value = String(result.toFixed(2)).formatMoney();
                    CalculaTotal();
                    CalculaCusto();
                    CalculaLucro(id(maincontent + 'txtPercLucro').value, id(maincontent + 'txtTotalCusto').value);
                    CalculaPercLucro(id(maincontent + 'txtPrecoVenda').value, id(maincontent + 'txtTotalCusto').value);
                });

                //
                id(maincontent + 'txtPrecoFlor').addEventListener('keyup', function () {
                    var result = total(this.value, id(maincontent + 'txtQtdeFlor').value);
                    id(maincontent + 'txtCustoVarFlor').value = String(result.toFixed(2)).formatMoney();
                    CalculaTotal();
                    CalculaCusto();
                    CalculaLucro(id(maincontent + 'txtPercLucro').value, id(maincontent + 'txtTotalCusto').value);
                    CalculaPercLucro(id(maincontent + 'txtPrecoVenda').value, id(maincontent + 'txtTotalCusto').value);
                });

                id(maincontent + 'txtQtdeFlor').addEventListener('keyup', function () {
                    var result = total(id(maincontent + 'txtPrecoFlor').value, this.value);
                    id(maincontent + 'txtCustoVarFlor').value = String(result.toFixed(2)).formatMoney();
                    CalculaTotal();
                    CalculaCusto();
                    CalculaLucro(id(maincontent + 'txtPercLucro').value, id(maincontent + 'txtTotalCusto').value);
                    CalculaPercLucro(id(maincontent + 'txtPrecoVenda').value, id(maincontent + 'txtTotalCusto').value);
                });

                //
                id(maincontent + 'txtPrecoTingimento').addEventListener('keyup', function () {
                    var result = total(this.value, id(maincontent + 'txtQtdeTingimento').value);
                    id(maincontent + 'txtCustoVarTingimento').value = String(result.toFixed(2)).formatMoney();
                    CalculaTotal();
                    CalculaCusto();
                    CalculaLucro(id(maincontent + 'txtPercLucro').value, id(maincontent + 'txtTotalCusto').value);
                    CalculaPercLucro(id(maincontent + 'txtPrecoVenda').value, id(maincontent + 'txtTotalCusto').value);
                });

                id(maincontent + 'txtQtdeTingimento').addEventListener('keyup', function () {
                    var result = total(id(maincontent + 'txtPrecoTingimento').value, this.value);
                    id(maincontent + 'txtCustoVarTingimento').value = String(result.toFixed(2)).formatMoney();
                    CalculaTotal();
                    CalculaCusto();
                    CalculaLucro(id(maincontent + 'txtPercLucro').value, id(maincontent + 'txtTotalCusto').value);
                    CalculaPercLucro(id(maincontent + 'txtPrecoVenda').value, id(maincontent + 'txtTotalCusto').value);
                });

                //
                id(maincontent + 'txtPrecoAviamento').addEventListener('keyup', function () {
                    var result = total(this.value, parseFloat(1).toFixed(2));
                    id(maincontent + 'txtCustoVarAviamento').value = String(result.toFixed(2)).formatMoney();
                    CalculaTotal();
                    CalculaCusto();
                    CalculaLucro(id(maincontent + 'txtPercLucro').value, id(maincontent + 'txtTotalCusto').value);
                    CalculaPercLucro(id(maincontent + 'txtPrecoVenda').value, id(maincontent + 'txtTotalCusto').value);
                });

                //
                id(maincontent + 'txtPrecoEmbalagem').addEventListener('keyup', function () {
                    var result = total(this.value, parseFloat(1).toFixed(2));
                    id(maincontent + 'txtCustoVarEmbalagem').value = String(result.toFixed(2)).formatMoney();
                    CalculaTotal();
                    CalculaCusto();
                    CalculaLucro(id(maincontent + 'txtPercLucro').value, id(maincontent + 'txtTotalCusto').value);
                    CalculaPercLucro(id(maincontent + 'txtPrecoVenda').value, id(maincontent + 'txtTotalCusto').value);
                });

                //
                id(maincontent + 'txtPrecoImpostos').addEventListener('keyup', function () {
                    var result = total(this.value, parseFloat(1).toFixed(2));
                    id(maincontent + 'txtCustoVarImpostos').value = String(result.toFixed(2)).formatMoney();
                    CalculaTotal();
                    CalculaCusto();
                    CalculaLucro(id(maincontent + 'txtPercLucro').value, id(maincontent + 'txtTotalCusto').value);
                    CalculaPercLucro(id(maincontent + 'txtPrecoVenda').value, id(maincontent + 'txtTotalCusto').value);
                });

                //////////////////////////////////////////////////////////////////////////////////////
                //
                id(maincontent + 'txtCustoFixo').addEventListener('keyup', function () {
                    CalculaCusto();
                    CalculaTotal();
                    CalculaLucro(id(maincontent + 'txtPercLucro').value, id(maincontent + 'txtTotalCusto').value);
                    CalculaPercLucro(id(maincontent + 'txtPrecoVenda').value, id(maincontent + 'txtTotalCusto').value);
                });

                //
                id(maincontent + 'txtPercCustoFixo').addEventListener('keyup', function () {
                    CalculaCusto();
                    CalculaTotal();
                    CalculaLucro(id(maincontent + 'txtPercLucro').value, id(maincontent + 'txtTotalCusto').value);
                    CalculaPercLucro(id(maincontent + 'txtPrecoVenda').value, id(maincontent + 'txtTotalCusto').value);
                });

                //
                id(maincontent + 'txtPercLucro').addEventListener('keyup', function () {
                    var xvalor = parseFloat(this.value).toFixed(2);
                    CalculaLucro(xvalor, id(maincontent + 'txtTotalCusto').value);                
                });

                //
                id(maincontent + 'txtPrecoVenda').addEventListener('keyup', function () {
                    var xvalor = parseFloat(this.value).toFixed(2);
                    CalculaPercLucro(xvalor, id(maincontent + 'txtTotalCusto').value);
                });            
            }
            /////////////////////////////////////////////////

            ///////
            $('#MainContent_TabPrincipal_TabDados_txtTotalCustoVar').val(0);

            //Função para obter o campo
            function id(el) {
                return document.getElementById(el);
            }
            //Total para o Custo Variável
            function total(un, qnt) {            
                qnt = qnt ? qnt : 0;
                var totalfinal = parseFloat(un.replace(',', '.'), 10) * parseFloat(qnt.replace(',', '.'), 10);
                if (isNaN(totalfinal)) {
                    return '0,00';
                } else {
                    return totalfinal;
                }            
            }
            /////////////////////////////////////////////////

            //Total para o Percentual do Custo Fixo
            function custofixo(un, perc) {
                perc = perc ? perc : 0;
                var totalfinal = (parseFloat(un.replace(',', '.'), 10) / 100) * parseFloat(perc.replace(',', '.'), 10);
                if (isNaN(totalfinal)) {
                    return '0,00';
                } else {
                    return totalfinal;
                }
            }
            /////////////////////////////////////////////////

            //Total do Custo
            function CalculaCusto(custo, custovar) {
                var maincontent = 'MainContent_TabPrincipal_TabDados_';            
                var xvalorfixo = parseFloat(id(maincontent + 'txtCustoFixo').value.replace(',', '.'), 10).toFixed(2);
                var xperccustofixo = parseFloat(id(maincontent + 'txtPercCustoFixo').value.replace(',', '.'), 10).toFixed(2);
                if (isNaN(xperccustofixo) == true) {
                    xperccustofixo = parseFloat(10, 10);
                }            
                var result = custofixo(xperccustofixo, xvalorfixo).toFixed(2);
                result = totalcusto(result, id(maincontent + 'txtTotalCustoVar').value);
                id(maincontent + 'txtTotalCusto').value = String(result).formatMoney();
            }
            function totalcusto(custo, custovar) {
                custovar = custovar ? custovar : 0;
                var totalfinal = parseFloat(custo.replace(',', '.'), 10) + parseFloat(custovar.replace(',', '.'), 10);
                if (isNaN(totalfinal)) {
                    return '0,00';
                } else {
                    return totalfinal;
                }
            }
            /////////////////////////////////////////////////        

            //Calcula o Lucro
            function CalculaLucro(percvenda, totalcusto) {
                var maincontent = 'MainContent_TabPrincipal_TabDados_';

                totalcusto = totalcusto ? totalcusto : 0;            
                var totalfinal = (((parseFloat(totalcusto.replace(',', '.'), 10) / 100) * parseFloat(percvenda.replace(',', '.'), 10))) + parseFloat(totalcusto.replace(',', '.'), 10);
                //var totalfinal = ((parseFloat(totalcusto.replace(',', '.'), 10).toFixed(2) / 100) * parseFloat(percvenda.replace(',', '.'), 10).toFixed(2));
                //totalfinal = parseFloat(totalfinal.replace(',', '.'), 10) + parseFloat(totalcusto.replace(',', '.'), 10);
                if (isNaN(totalfinal)) {
                    //return '0,00';
                } else {
                    id(maincontent + 'txtPrecoVenda').value = String(parseFloat(totalfinal).toFixed(2)).formatMoney();
                }
            }
            /////////////////////////////////////////////////        

            //Calcula o Percentual de Lucro
            function CalculaPercLucro(valorvenda, totalcusto) {
                var maincontent = 'MainContent_TabPrincipal_TabDados_';

                totalcusto = totalcusto ? totalcusto : 0;
                var totalfinal = ((parseFloat(valorvenda.replace(',', '.'), 10).toFixed(2) / parseFloat(totalcusto.replace(',', '.'), 10).toFixed(2)) - 1) * 100;
                if (isNaN(totalfinal)) {
                    return '0,00';
                } else {
                    id(maincontent + 'txtPercLucro').value = String(parseFloat(totalfinal).toFixed(2)).formatMoney();
                }
            }
            /////////////////////////////////////////////////        

            //Calcula o Total Custo Variável
            function CalculaTotal() {
                var maincontent = '#MainContent_TabPrincipal_TabDados_';

                var total = 0;

                var price1 = $(maincontent + 'txtCustoVarTecido1').val();
                var price1 = parseFloat(price1.replace(',', '.'), 10);

                var price2 = $(maincontent + 'txtCustoVarTecido2').val();
                var price2 = parseFloat(price2.replace(',', '.'), 10);

                var price3 = $(maincontent + 'txtCustoVarTecido3').val();
                var price3 = parseFloat(price3.replace(',', '.'), 10);

                var forro = $(maincontent + 'txtCustoVarForro').val();
                var forro = parseFloat(forro.replace(',', '.'), 10);

                var maoobra = $(maincontent + 'txtCustoVarMaoObra').val();
                var maoobra = parseFloat(maoobra.replace(',', '.'), 10);

                var bordado = $(maincontent + 'txtCustoVarBordado').val();
                var bordado = parseFloat(bordado.replace(',', '.'), 10);

                var flor = $(maincontent + 'txtCustoVarFlor').val();
                var flor = parseFloat(flor.replace(',', '.'), 10);

                var tingimento = $(maincontent + 'txtCustoVarTingimento').val();
                var tingimento = parseFloat(tingimento.replace(',', '.'), 10);

                var aviamento = $(maincontent + 'txtCustoVarAviamento').val();
                var aviamento = parseFloat(aviamento.replace(',', '.'), 10);

                var embalagem = $(maincontent + 'txtCustoVarEmbalagem').val();
                var embalagem = parseFloat(embalagem.replace(',', '.'), 10);

                var impostos = $(maincontent + 'txtCustoVarImpostos').val();
                var impostos = parseFloat(impostos.replace(',', '.'), 10);

                total = parseFloat(price1 ? price1 : 0) + parseFloat(price2 ? price2 : 0) + parseFloat(price3 ? price3 : 0) + parseFloat(forro ? forro : 0) + parseFloat(maoobra ? maoobra : 0) + parseFloat(bordado ? bordado : 0) + parseFloat(flor ? flor : 0) + parseFloat(tingimento ? tingimento : 0) + parseFloat(aviamento ? aviamento : 0) + parseFloat(embalagem ? embalagem : 0) + parseFloat(impostos ? impostos : 0);
                id('MainContent_TabPrincipal_TabDados_txtTotalCustoVar').value = String(total.toFixed(2)).formatMoney();              
            }
            ///////////////////////////////////////

            String.prototype.formatMoney = function () {
                var v = this;

                if (v.indexOf('.') === -1) {
                    v = v.replace(/([\d]+)/, "$1,00");
                }

                v = v.replace(/([\d]+)\.([\d]{1})$/, "$1,$20");
                v = v.replace(/([\d]+)\.([\d]{2})$/, "$1,$2");
                v = v.replace(/([\d]+)([\d]{3}),([\d]{2})$/, "$1.$2,$3");

                return v;
            };
        </script>


    quarta-feira, 21 de outubro de 2015 11:51