Jan 26

Olá, nesse post tentarei demonstrar uma das opções de ferramenta para a seleção de cores dentro de uma pagina web.

Com o aumento das páginas com itens dinâmicos, que podem ser customizados pelos usuários, como fontes, bordas, textos, e, principalmente cores, Surge a necessidade de uma maneira do usuário selecionar a cor para uma determinada propriedade sem inserir ela diretamente em hexadecimal ou  em rgb

O plugin que vamos utilizar do jQuery se chama ColorPicker, pode ser baixado em http://www.eyecon.ro/colorpicker/#download

Passo 1

Adicione os arquivos baixados ao projeto, os principais são:

  • images
  • colorpicker.js
  • colorpiker.css

Lembrando que o jQuery é necessário

Passo 2

Chame os arquivos javascript e a folha de estilo no Header da página

Passo 2
  1. <asp:Content ID=”HeaderContent” runat=”server” ContentPlaceHolderID=”HeadContent”>
  2. <script src=”Scripts/jquery-1.3.2.js” type=”text/javascript”></script>
  3. <script src=”Scripts/colorpicker.js” type=”text/javascript”></script>
  4. <link href=”Styles/colorpicker.css” rel=”stylesheet” type=”text/css”></link>
  5. </asp:Content>
Code Snippet
  1. <asp:Content ID=”HeaderContent” runat=”server” ContentPlaceHolderID=”HeadContent”>
  2. <script src=”Scripts/jquery-1.3.2.js” type=”text/javascript”></script>
  3. <script src=”Scripts/colorpicker.js” type=”text/javascript”></script>
  4. <link href=”Styles/colorpicker.css” rel=”stylesheet” type=”text/css”></link>
  5. </asp:Content>

Passo 3

Insira um TextBox que utilizará como objeto para retornar a cor selecionada pelo Color Picker

Passo 3
  1. Selecione a cor:
  2. <asp:TextBox ID=”txtCor” runat=”server”></asp:TextBox>

Passo 4

Agora precisaremos inicializar o Color Picker selecionado o TextBox via jQuery e passando alguns atributos

Passo4
  1. <script type=”text/javascript”>
  2. $(‘#MainContent_txtCor’).ColorPicker({
  3. onSubmit: function(hsb, hex, rgb, el) {
  4. $(el).val(hex);
  5. $(el).ColorPickerHide();
  6. },
  7. onBeforeShow: function() {
  8. $(this).ColorPickerSetColor(this.value);
  9. }
  10. });
  11. </script>

Nesse código nós estamos definindo dois eventos:

  • onBeforeShow, antes de exibir o componente ele pega a cor que está escrita no TextBox e seta no controle
  • onSubmit, atribui a cor selecionada ao TextBox

E precisamos considerar qual será o ClientID do controle ASP.NET (MainContent_txtCor)

Passo5

Agora podemos trabalhar como quisermos em ambos os lados, Client e Server. Como exemplo vou manipular o valor no Server.

.aspx
  1. <p>
  2. A cor selecionada foi:
  3. <asp:Label ID=”lblCor” runat=”server”>        </asp:Label>
  4. </p>
  5. <asp:Button ID=”btnSalvar” runat=”server” Text=”Salvar” OnClick=”btnSalvar_Click” />
.aspx.cs
  1. protected void btnSalvar_Click(object sender, EventArgs e)
  2. {
  3. lblCor.Text = txtCor.Text;
  4. lblCor.ForeColor = ColorTranslator.FromHtml(“#” + txtCor.Text);
  5. }

Como exemplo desses passos teremos:

Obrigado,

Rodolfo

Jan 23

Como trabalhar de forma simples com objetos JSON no server side?

Procurando uma resposta para esta pergunta encontrei um projeto que tem como fruto uma biblioteca em .NET que manipula de forma simples dados em formato de JSON,

o projeto se chama Json.NET e pode ser baixado em http://www.codeplex.com/Json.

Suas principais caracteristicas são um serializador JSON flexível para converter rapidamente. NET para JSON e de volta, e LINQ to JSON para leitura e escrita JSON.

Para isso primeiramente devemos adicionar referência a dll do projeto, então podemos partir para alguns exemplos:

Serializando

Serializando um objeto
  1. Pessoa pessoa = new Pessoa { Nome = “Rodolfo”,Sobrenome= “Fadino” ,Idade = 20 };
  2. string jsonpessoa = JsonConvert.SerializeObject(pessoa, Formatting.Indented);

O resultado exibido será uma string:

{ “Nome”: “Rodolfo”, “Sobrenome”: “Fadino”, “Idade”: 20 }

Serializando um List
  1. List<Pessoa> pessoas = new List<Pessoa>();
  2. Pessoa rodolfo = new Pessoa { Nome = “Rodolfo”,Idade = 20 };
  3. Pessoa alexandre = new Pessoa { Nome = “Alexandre”, Idade = 21 };
  4. Pessoa eduardo = new Pessoa { Nome = “Eduardo”,  Idade = 22 };
  5. Pessoa taura = new Pessoa { Nome = “Taurã”,  Idade = 23 };
  6. pessoas.Add(rodolfo);
  7. pessoas.Add(alexandre);
  8. pessoas.Add(eduardo);
  9. pessoas.Add(taura);
  10. string jsonpessoas = JsonConvert.SerializeObject(pessoas, Formatting.Indented);
Code Snippet
  1. Pessoa pessoa = new Pessoa { Nome = “Rodolfo”,Sobrenome= “Fadino” ,Idade = 20 };
  2. string jsonpessoa = JsonConvert.SerializeObject(pessoa, Formatting.Indented);
  3. lblJson.Text = jsonpessoa;

O resuldao exibido será uma string:

[ { "Nome": "Rodolfo", "Idade": 20 }, { "Nome": "Alexandre", "Idade": 21 }, { "Nome": "Eduardo", "Idade": 22 }, { "Nome": "Taurã", "Idade": 23 } ]

Agora podemos passar para o processo inverso, através de uma string no formato de um JSON iremos utilizar Linq to JSON

Linq to JSON

Linq to JSON
  1. string json = @”{
  2. “”Nome”": “”Rodolfo”",
  3. “”Idade”": 20,
  4. “”Certificacoes”": [
  5. ""MCP"",
  6. ""MCTS"",
  7. ""MCPD""
  8. ]
  9. }”;
  10. JObject objRodolfo = JObject.Parse(json);
  11. string Nome = (string)objRodolfo["Nome"];
  12. //Rodolfo
  13. JArray certificacoes = (JArray)objRodolfo["Certificacoes"];
  14. //[ "MCP", "MCTS", "MCPD" ]
  15. string certificacao1 = (string)certificacoes[1];
  16. //MCTS

Outra coisa que podemos fazer são consultas Linq

Code Snippet
  1. JObject objPessoas = JObject.Parse(@”{
  2. “”Pessoas”" :[
  3. {""Nome"":""Nome1"",
  4. ""Idade"":20,
  5. ""Profissao"":""Desenvolvedor""},
  6. {""Nome"":""Nome2"",
  7. ""Idade"":20,
  8. ""Profissao"":""Desenvolvedor""},
  9. {""Nome"":""Nome3"",
  10. ""Idade"":20,
  11. ""Profissao"":""Desenvolvedor""},
  12. {""Nome"":""Nome4"",
  13. ""Idade"":20,
  14. ""Profissao"":""Desenvolvedor""}
  15. ]}”);
  16. IList<string> pessoas = objPessoas["Pessoas"].Select(p => (string)p["Nome"]).ToList();
  17. lblJson.Text = pessoas.First();
  18. //Nome1

Obrigado

qualquer duvida estou a disposição.

Rodolfo

Jan 18

Após ter que aprender a utilizar JSON em uma novo projeto, decidi fazer um post sobre esse formato de transmissão de dados. Uma de suas principais vantagens é ser baseado em um subconjunto do JavaScript. Sendo um objeto JavaScript, sua manipulação com JavaScript é mais intuitiva do que, por exemplo, a manipulação de um xml.

JSON (JavaScript Object Notation) é construído em duas estruturas:

  • Uma coleção de pares nome / valor. O que pode ser definido como um objeto, registro, estrutura, quadro, dicionário de hash, keyed list, ou vetors associativos.
  • Uma lista ordenada de valores. Na maioria das linguagens isto é percebido como um  vetor, lista ou sequência.

Sendo uma estrutura de dados a maioria das linguagens modernas possuem um tipo de suporte para o uso do JSON, assim é um dos melhores jeitos de trafegar informações.

Estas estrutiras podem ter os seguintes formatos:

Objeto:

Um objeto é um conjunto não ordenado de pares nome / valor. Um objeto que começa com {(chave esquerda) e termina com } (chave direita). Cada nome é seguido por: (dois pontos) e os pares nome / valor são separados por, (vírgula).

ex:

var objeto = { nome1: “valor1″, nome2: “valor2″, nome3: “valor4″ };

alert(objeto.nome1);

//”valor1″

Vetor

Um vetor é uma coleção ordenada de valores. Um vetor começa com [(colchete esquerdo) e termina com] (colchete direito). Os valores são separados por, (vírgula).

ex:

var vetor = ["valor1", "valor2", "valor3"];

alert(vetor[1]);

//”valor2″

O valor pode ser uma string entre aspas, ou um número, ou verdadeiro ou falso ou nulo, ou um objeto ou um array. Estas estruturas podem ser aninhadas.

Estruturas aninhadas

ex:

var pessoa = { nome:”Rodolfo”, Idade: 20, Sexo: ‘M’, Certificações:["MCP", "MCTS" , "MCPD"]};

alert( pessoa.Certificações[1]);

//”MCTS”

alert( pessoa.Idade);

//20

var pessoa = { nome: “Rodolfo”, Idade: 20, Sexo: ‘M’, Certificações: ["MCP", "MCTS", "MCPD"] };
var certif = “”;
for (var item in pessoa.Certificações) {
certif =  pessoa.Certificações[item] + ” “+ certif;
}

alert(certif);

//”MCP MCTS MCDP”

Uma coisa muito util é o intellisense do js reconhecendo a estrutura

Manipulando via js

ex:

var pessoas= new Array;
pessoas.push(
{ nome: “Rodolfo”, Idade: 20, Sexo: ‘M’, Certificações: ["MCP", "MCTS", "MCPD"] }
);

pessoas.push(
{ nome: “Fadino”, Idade: 25, Sexo: ‘M’, Certificações: ["MCP", "MCTS", "MCPD"] }
);

pessoas.push(
{ nome: “Junior”, Idade: 25, Sexo: ‘M’, Certificações: ["MCP", "MCTS", "MCPD"] }
);

alert(pessoas[1].Certificações);

// “MCP, MCTS,MCPD”

ex:

var pessoas= new Array;
pessoas.push(
{ nome: “Rodolfo”, Idade: 20, Sexo: ‘M’, Certificações: ["MCP", "MCTS", "MCPD"] }
);

pessoas.push(
{ nome: “Fadino”, Idade: 25, Sexo: ‘M’, Certificações: ["MCP", "MCTS", "MCPD"] }
);

pessoas.push(
{ nome: “Junior”, Idade: 25, Sexo: ‘M’, Certificações: ["MCP", "MCTS", "MCPD"] }
);

var pessoa = pessoas.pop();
alert(pessoa.nome);

//”Junior”

var pessoas= new Array;
pessoas.push(
{ nome: “Rodolfo”, Idade: 20, Sexo: ‘M’, Certificações: ["MCP", "MCTS", "MCPD"] }
);

pessoas.push(
{ nome: “Fadino”, Idade: 25, Sexo: ‘M’, Certificações: ["MCP", "MCTS", "MCPD"] }
);

pessoas.push(
{ nome: “Junior”, Idade: 25, Sexo: ‘M’, Certificações: ["MCP", "MCTS", "MCPD"] }
);

alert(pessoas.length);

//3

Bem, espero que tenha sido útil, em breve farei um post sobre Linq to JSON em C#,

Obrigado

Rodolfo