none
Colocando Máscara na GridView RRS feed

  • Pergunta

  • Galera eu tenho dos campos que possuem máscara no meu fomulário mais a máscara não vai ser salva no banco. Mais gostaria que na visualização na GridView esse campos apareçam com essa máscara rodei a beça na internet e não anchei nada consistente e eu utilizo C#...

     

    Agradeço desde já!


    Portal: www.teleportese.com
    terça-feira, 10 de janeiro de 2012 16:57

Respostas

  • Oi Ricardo,

    Vc vai precisar sobrescrever o evento CellFormating do DataGridView e colocar o seguinte código:

    private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
        if (e.ColumnIndex == 0)
        {
            e.Value = (Convert.ToInt32(e.Value)).ToString("00000-000");
            e.FormattingApplied = true;
        }
    }
    


    No caso do meu código a coluna que terá o CEP é a ZERO, ai vc adapta o código para a coluna q vc precisar...

     

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    • Marcado como Resposta Ricardo Masala quinta-feira, 12 de janeiro de 2012 10:38
    quarta-feira, 11 de janeiro de 2012 19:11
    Moderador

Todas as Respostas

  • Olá Ricardo,

    Vc chegou a ver o funcionamento da propriedade DataFormatString?

    Veja esses links:

    http://www.codigofonte.net/dicas/aspnet/406_formatando-valores-no-gridview

    http://msdn.microsoft.com/pt-br/library/system.web.ui.webcontrols.boundfield.dataformatstring.aspx

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    terça-feira, 10 de janeiro de 2012 19:01
    Moderador
  • Eu n conseguindo mexer no DataFormatString eu altero mais nada acontece... E a aplicação é windows forms!
    Portal: www.teleportese.com
    quarta-feira, 11 de janeiro de 2012 16:24
  • Olá Ricardo,

    Que tipo de formato vc precisa apresentar?

    Que tipo de dados esta sendo passado para o datagridview?

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    quarta-feira, 11 de janeiro de 2012 16:26
    Moderador
  • Boa tarde, Ricardo. Uma forma bem simples de fazer seria utilizar o MaskedEditExtender do Ajax Toolkit.
    Abaixo um exemplo de campo textbox dentro de uma GridView com uma máscara para moeda:

    <asp:MaskedEditExtender ID="MaskedEditExtenderTextBoxPrice" runat="server" 
    AcceptNegative="None" DisplayMoney="Left" InputDirection="RightToLeft" 
    Mask="99.99" MaskType="Number" TargetControlID="txtSeuTextBox" /> 

     
    Nesse caso estou utlizando o MaskType Number. Mas é possível utilizar diversos outros.

     
    Dê uma olhada aqui:


    Evandro Aguiar Silva
    http://wta3.com.br

    Farei o possível, para ajudar. Caso eu consiga, marque minha resposta como útil e me faça feliz. :)



    • Editado EvandroAS quarta-feira, 11 de janeiro de 2012 16:28
    quarta-feira, 11 de janeiro de 2012 16:26
  • A máscara que eu preciso é de telefone e CEP eu coloquei a máscara no textBox mais marquei pra n passa pro banco só quero gravar os números mesmo mais quando exibido na grid quero que aparece com a máscara!
    Portal: www.teleportese.com
    quarta-feira, 11 de janeiro de 2012 16:32
  • Boa tarde !
    Vai ficar assim, amigo:
    <asp:TextBox ID="TextBox1" runat="server"/> 
    <cc1:MaskedEditExtender ID="MaskedEditExtender1" runat="server" Mask="99999\-99" TargetControlID="TextBox1"/>
    



    Abraços...


    Evandro Aguiar Silva
    http://wta3.com.br

    Farei o possível, para ajudar. Caso eu consiga, marque minha resposta como útil e me faça feliz. :)

    • Editado EvandroAS quarta-feira, 11 de janeiro de 2012 16:51
    quarta-feira, 11 de janeiro de 2012 16:50
  • Evandro eu vi o Ajax tool kit...

    Mais aonde entra esse código ta em asp e a aplicação é windows forms.  E a máscara não é no textBox é no GridView!


    Portal: www.teleportese.com
    quarta-feira, 11 de janeiro de 2012 17:03
  • Mesmo a máscara sendo na GridView, o usuário vai digitar em um TextBox, certo ?
    Então torne o campo no gridview template e associe sua função que faz a máscara. Pelo que pude perceber, a função você já tem pronta, correto ?

    Caso ainda não tenha a máscara, aqui você vai aprender como usar a Mask Edit no Windows Forms:
    http://www.macoratti.net/vbn_mask.htm 


    Evandro Aguiar Silva
    http://wta3.com.br

    Farei o possível, para ajudar. Caso eu consiga, marque minha resposta como útil e me faça feliz. :)
    • Editado EvandroAS quarta-feira, 11 de janeiro de 2012 18:05
    quarta-feira, 11 de janeiro de 2012 17:59
  • Eu tenho a máscara já mais oq acontece eu não quero que essa máscara vá para o banco então marquei no textBox pra máscara não gravar... Ai quando vai pra DataGrid só aparece os números entende? Mais eu quero que apareça com um máscara eu vi que dava pra fazer isso mais n to conseguindo!
    Portal: www.teleportese.com
    quarta-feira, 11 de janeiro de 2012 18:10
  • Usando a Mask Edit ela não vai salvar automaticamente. Você deu uma olhada aqui:  http://www.macoratti.net/vbn_mask.htm  ???
    Evandro Aguiar Silva
    http://wta3.com.br

    Farei o possível, para ajudar. Caso eu consiga, marque minha resposta como útil e me faça feliz. :)
    quarta-feira, 11 de janeiro de 2012 18:23
  • Já olhei sim... Mais esse artigo é sobre o textBox eu quero no Grid!
    Portal: www.teleportese.com
    quarta-feira, 11 de janeiro de 2012 18:34
  • Oi Ricardo,

    Vc vai precisar sobrescrever o evento CellFormating do DataGridView e colocar o seguinte código:

    private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
        if (e.ColumnIndex == 0)
        {
            e.Value = (Convert.ToInt32(e.Value)).ToString("00000-000");
            e.FormattingApplied = true;
        }
    }
    


    No caso do meu código a coluna que terá o CEP é a ZERO, ai vc adapta o código para a coluna q vc precisar...

     

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    • Marcado como Resposta Ricardo Masala quinta-feira, 12 de janeiro de 2012 10:38
    quarta-feira, 11 de janeiro de 2012 19:11
    Moderador
  • Fernando mais uma vez simples e preciso pronto problema resolvido! Brigadão...

     

     

    Abração!


    Portal: www.teleportese.com
    quinta-feira, 12 de janeiro de 2012 10:37
  • Boa tarde Fernando,


    estou com o mesmo problema. Mas ao tentar fazer a sua função, não consigo ver o DataGridViewCellFormattingEventArgs nos parametros da Função. O que pode ser? Deculpe  ignorancia, mas sou novo no .Net.


    segunda-feira, 26 de novembro de 2012 18:23
  • Cara,

    1 º - Ele está trabalhando com Windows Forms e não Asp Net.

    2º - Isso não é uma função, ele apenas associou um if no evento CellFormatting do datagrid com regras diferentes dentro desse if que no caso é a formatação para a coluna especifica do datagrid.

    Atenciosamente,

    Samuel dos Anjos


    Atenciosamente, Samuel dos Anjos

    segunda-feira, 26 de novembro de 2012 21:58