Continuando....

Agora vamos aos códigos. Aperte F7 para ir a Default.aspx.cs e crie o método que irá nos retornar a imagem referente ao tipo de pagamento:

protected string RetornaImagem(int Tipo)

        {

            //Declaro a variável de retorno, do tipo string

            string retorno = string.Empty;

 

            //Faço um Switch com Case para verificar o tipo do valor, que receberá a respectiva imagem

            switch (Tipo)

            {

                case 1:

                    retorno = @"~\cartao.gif";

                    break;

 

                case 2:

                    retorno = @"~\cheque.gif";

                    break;

 

                case 3:

                    retorno = @"~\dinheiro.gif";

                    break;

            }

 

            //retorno ao fim do método a variável retorno preenchida

            return retorno;

        }

Criei um método do tipo string, com um parâmetro do tipo int, referente ao tipo que foi gravado na tabela Vendas. Dentro do método fiz um switch com case, para avaliar qual valor foi gravado no banco, em cada coluna, se for do tipo 1, retorna a imagem referente ao Cartão de Crédito, se for do tipo 2, ao Cheque e se for do tipo 3, a Dinheiro.

Agora volte ao modo Design, pois teremos que fazer algumas alterações para que nossa coluna Tipo aceite a respectiva imagem.

Clique na SmartTag do GridView e clique na opção Edit Columns.... Selecione as colunas Tipo, à esquerda, e clique no botão Convert this field into a TemplateField, para converter nossa coluna em um Template Field (farei um artigo sobre ele daqui um tempo) e clique em OK, como mostra a imagem a seguir:


Abra a SmartTag novamente e clique no botão Edit Templates, para acessarmos a coluna Tipo. Nela, exclua o Label e arraste um controle do tipo Image:


Abra a SmartTag desse Image e clique na opção Edit DataBindings. Nela, veja que temos a opção de Field Binding, onde podemos indicar um campo que será a URL de nossa imagem e temos também a opção Custom Binding, em que podemos passar um Code Expression, ou seja, um código que representará a forma que nossa imagem aparecerá. Vamos usar esta última opção que terá como Code Expression nosso método criado anteriormente.

Clique nessa opção e acrescente no textbox o código que podemos ver na imagem a seguir:


O que fizemos acima foi passar nosso método, fazendo a conversão, já que o Code Expression retorna um objeto e o parâmetro de nosso método contém um inteiro, passando dentro de Eval, o valor Tipo.

Agora clique na SmartTag do GridView e clique em End Template Editing, para voltarmos ao nosso GridView com todas as colunas.

Antes de compilar, clique na aba Source, da Default.aspx e perceba que este código que adicionamos pelo DataBindings do Image, pode ser adicionado diretamente no aspx


Salve o projeto e aperte F5 para compilarmos, irá aparecer uma mensagem para que seja alterado as configurações do Web.Config e a compilação possa ocorrer. Clique em OK e aguarde. Seu GridView deverá estar parecido com o da imagem abaixo:


Veja que foi alterada a imagem de acordo com o tipo de pagamento, como criado em nosso método.

Podemos usar este exemplo, esta idéia, em N tipos de cenários e é muito útil quando o uso de imagens no GridView se torna mais eficiente do que simples textos.

Assim finalizo o artigo.

Para quem se interessar, disponibilizo o código fonte desse projeto e o script da criação e inserção de registros da tabela Vendas aqui.

 Quaisquer dúvidas mandem emails para wellingtonbalbo@gmail.com ou deixem nos comentários deste artigo que responderei o mais breve possível.

 Até o próximo artigo!