none
Como tratar um campo decimal em uma máscara jquery mvc c# RRS feed

  • Discussão Geral

  • Tenho um model com a seguinte definição:

    [Display(Name = "Quantidade / Volume:")] public Int32 RoQuantidade { set; get; }

    Em minha View para preencher os dados quando vazios, ou seja, ainda não foram gravados, usando o maskMoney funciona sem problemas. Eu utilizo da seguinte forma:

    $('#RoQuantidade').maskMoney({ 
            showSymbol: false, 
            symbol: "R$", 
            decimal: ",", 
            thousands: ".", 
            allowZero: true, 
            allowNegative: false, 
            precision: 0 
    });

    Repare que eu informo que a precisão é zero, pois eu não preciso de casas decimais neste caso.
    O problema começa quando vou recuperar a informação da fonte de dados. No meu controller eu recupero a informação assim:

    model.RoQuantidade = Convert.ToInt32(_sheet.Cells[lin, 3].value2);

    Estou pegando a informação de uma planilha Excel, porém esse não é o problema. Acontece que o retorno para a view mesmo eu retirando a mascara ou tentando converter sempre retornar da seguinte maneira: valor original: 30000 Valor retornado para a view 30000,00

    Se utilizo o maskMoney da forma que coloquei acima com um parâmetro a mais que é

    $('#Disponivel').maskMoney({ 
            showSymbol: false, 
            symbol: "R$", 
            decimal: ",", 
            thousands: ".",
            allowZero: true, 
            allowNegative: true 
    }).maskMoney('mask', $('#Disponivel').val());

    para formatar o valor retornado ele apresenta o valor: 3.000.000 pois o campo por ser decimal acrescentou os dois zeros transformando de 30 mil para 3 milhões

    Já tentei alterar a definição do campo para int32, porém a formatação fica com problemas e na hora de gravar informa que existe erro pois não pode gravar 30,000 (repare que ele mudou mesmo com a definição correta o ponto pela virgula).

    Já tentei usar outros plugins jquey como o maskedit, mas não consegui, principalmente quando do retorno da informação.

    Se vocês tiverem alguma ideia de como eu posso fazer para preencher o valor formatado, gravar a informação sem formatação, recuperar a informação sem formatação e apresentar de forma formatada, não tem problema algum mudar de decimal para outro tipo, só preciso fazer com que ele respeite a situação acima que descrevi.

    Se alguém tiver uma ideia agradeceria muito. Preciso resolver isso para terminar este módulo.

    • Tipo Alterado Marcos SJ segunda-feira, 11 de abril de 2016 12:58 How to
    sexta-feira, 8 de abril de 2016 19:37

Todas as Respostas