sábado, 18 de julho de 2015

Razor Parametro Jquery

@using Lapuinka.PCP.Resources
@using Lapuinka.PCP.Web.Core
@model IEnumerable<Lapuinka.PCP.Data.Model.tb_ParametroPCP>
<table id="grid" class="lista">
     <tr>
         <th>@Resource.Coluna_Id</th>
         <th>@Resource.Coluna_Nome</th>
         <th>@Resource.Coluna_Valor</th>
         <th>@Resource.Coluna_Tipo</th>
         <th>@Resource.Coluna_Descricao</th>
     </tr>
     @{
         int i = 0;
     }
     @foreach (var item in Model)
     {
        <tr @Html.Raw(i++ % 2 == 0 ? "class='par'" : "")>
            <td class="cdParametro">@item.cdParametro</td>
            <td class="dsNome esquerda">@item.dsNome</td>
            <td class="idTipo">@item.idTipo</td>
            <td class="dsValor editavel width355px">@item.dsValor</td >
            <td class="dsDescricao esquerda width450px">@item.dsDescricao </td>
        </tr>
     }
</table>
<div class="botoes">
    <input type="button" onclick="javascript:ExecutarAcao('@Url.Content(Constantes._urlParametroIndex)')" value="@Resource.Btn_Cancelar" />  
    <input type="submit" value="@Resource.Btn_Salvar" onclick="EnviarJSON();" />
</div>

<script src="@Url.Content("~/Scripts/jquery.maskMoney.js")" type="text/javascript"></script>

<script type="text/javascript">
    var tipoValor = { INT: "INT", DECIMAL: "DECIMAL", STRING: "STRING" };
    $(function () {
        $("#grid").find(".editavel").live("click", function () {
            if ($(this).find("input").length == 0) {
                var valor = $.trim($(this).html());
                $(this).html("");
            }
            //atribui a mascara
            switch ($(this).siblings(".idTipo").html()) {
                case tipoValor.INT:
                    $(this).children("input").maskMoney({ symbol: '', showSymbol: false, thousands: '', decimal: ',', symbolStay: false, precision: 0, allowNegative: true });
                    break;
                case tipoValor.DECIMAL:
                    $(this).children("input").maskMoney({ symbol: '', showSymbol: false, thousands: '', decimal: ',', symbolStay: false });
                    break;
                default:
                    break;
            }
            $(this).children("input")
                .blur(function () { $(this).parent().html($(this).val()); })
                .focus(function () { $(this).select(); }).focus();
        });
    });

    function EnviarJSON() {
        var dados = ConverteTabelaParaJSON();
        $.ajax({
            type: "POST",
            url: '@Url.Content(Constantes._urlParametroSalvarEmLote)',
            contentType: 'application/json',
            dataType: 'json',
            async: false,
            data: JSON.stringify(dados),
            success: function(MensagemRetorno) {
                Aviso(MensagemRetorno);
            }
        });
    }
    var listaObjetos = [];
    function InicializaControle() {
        var colParametros = jQuery("#grid tr td.cdParametro");
        var coldsNomes = jQuery("#grid tr td.dsNome");
        var coldsValor = jQuery("#grid tr td.dsValor");
        var colidTipo = jQuery("#grid tr td.idTipo");
        var coldsDescricao = jQuery("#grid tr td.dsDescricao");
        for (var i = 0; i < colParametros.length; ++i) {
            var valor = pegaValor(coldsValor[i]);
            listaObjetos.push({ "cdParametro": 0, "dsNome": "", "dsValor": "", "idTipo": "", "dsDescricao": "" });
            listaObjetos[i].cdParametro = colParametros[i].innerText ? $.trim(colParametros[i].innerText) : $.trim(colParametros[i].textContent);
            listaObjetos[i].dsNome = coldsNomes[i].innerText ? $.trim(coldsNomes[i].innerText) : $.trim(coldsNomes[i].textContent);
            listaObjetos[i].dsValor = pegaValor(coldsValor[i]);
            listaObjetos[i].idTipo = colidTipo[i].innerText ? $.trim(colidTipo[i].innerText) : $.trim(colidTipo[i].textContent);
            listaObjetos[i].dsDescricao = coldsDescricao[i].innerText ? $.trim(coldsDescricao[i].innerText) : $.trim(coldsDescricao[i].textContent);
        }
    }
    function ConverteTabelaParaJSON() {
        var colParametros = jQuery("#grid tr td.cdParametro");
        var coldsNomes = jQuery("#grid tr td.dsNome");
        var coldsValor = jQuery("#grid tr td.dsValor");
        var colidTipo = jQuery("#grid tr td.idTipo");
        var coldsDescricao = jQuery("#grid tr td.dsDescricao");
        var listaObjetosAlterado = [];
        var y = 0;
        for (var i = 0; i < colParametros.length; ++i) {
            var valor = pegaValor(coldsValor[i]);
            if (listaObjetos[i].dsValor != valor) {
                listaObjetosAlterado.push({ "cdParametro": 0, "dsNome": "", "dsValor": "", "idTipo": "", "dsDescricao": "" });
                listaObjetosAlterado[y].cdParametro = colParametros[i].innerText ? $.trim(colParametros[i].innerText) : $.trim(colParametros[i].textContent);
                listaObjetosAlterado[y].dsNome = coldsNomes[i].innerText ? $.trim(coldsNomes[i].innerText) : $.trim(coldsNomes[i].textContent);
                listaObjetosAlterado[y].dsValor = pegaValor(coldsValor[i]);
                listaObjetosAlterado[y].idTipo = colidTipo[i].innerText ? $.trim(colidTipo[i].innerText) : $.trim(colidTipo[i].textContent);
                listaObjetosAlterado[y].dsDescricao = coldsDescricao[i].innerText ? $.trim(coldsDescricao[i].innerText) : $.trim(coldsDescricao[i].textContent);
                y++;
            }
        }
        return listaObjetosAlterado;
    }
    function pegaValor(objeto) {
        var retorno = '';
        var filho = objeto.firstChild;
        try {
            retorno = filho.value;
            if (filho.value == null)
                retorno = objeto.innerText ? objeto.innerText.trim() : objeto.textContent.trim();
        } catch (e) {
            retorno = objeto.innerText ? objeto.innerText.trim() : objeto.textContent.trim();
        }
        return retorno.trim();
    }
    $(function () {
        InicializaControle();
    });
   
 </script>



Postar um comentário