Primeiramente precisamos criar um projeto ASP.NET MVC no Visual Studio:
Feito isso, iremos acrescentar os arquivos CSS e JavaScript que compõe a API nas pastas Content e Scripts:
Criaremos uma Controller responsável por gerenciar as requisições de nossa página de exemplo:
Nossa controller ficará assim:
using ChosenExample.Web.Models; using System.Web.Mvc; namespace ChosenExample.Web.Controllers { public class ChosenExampleController : Controller { public ActionResult Index() { return View(new ListHelper()); } } }A action Index utilizada na Controller acima, retorna uma View passando nosso objeto Model (ListHelper):
using System.Collections.Generic; namespace ChosenExample.Web.Models { public class ListHelper { public int CdAnimal { get; set; } public int CdProduto { get; set; } public ListAs classes abaixo serão utilizadas na tipagem das listas de nossa ModelAnimais { get; set; } public List Produtos { get; set; } public ListHelper() { FillAnimais(); FillProdutos(); } private void FillProdutos() { Produtos = new List (); Produtos.Add(new Produto() { IdProduto = 1, DsProduto = "Computador" }); Produtos.Add(new Produto() { IdProduto = 2, DsProduto = "TV" }); Produtos.Add(new Produto() { IdProduto = 3, DsProduto = "Video Game" }); Produtos.Add(new Produto() { IdProduto = 4, DsProduto = "DVD Player" }); Produtos.Add(new Produto() { IdProduto = 5, DsProduto = "Smart Phone" }); Produtos.Add(new Produto() { IdProduto = 6, DsProduto = "iPhone" }); Produtos.Add(new Produto() { IdProduto = 7, DsProduto = "Laptop" }); Produtos.Add(new Produto() { IdProduto = 8, DsProduto = "Janela" }); Produtos.Add(new Produto() { IdProduto = 9, DsProduto = "Mesa" }); Produtos.Add(new Produto() { IdProduto = 10, DsProduto = "Lâmpada" }); Produtos.Add(new Produto() { IdProduto = 11, DsProduto = "Teclado" }); } private void FillAnimais() { Animais = new List (); Animais.Add(new Animal() { IdAnimal = 1, DsAnimal = "Cachorro" }); Animais.Add(new Animal() { IdAnimal = 2, DsAnimal = "Gato" }); Animais.Add(new Animal() { IdAnimal = 3, DsAnimal = "Pássaro" }); Animais.Add(new Animal() { IdAnimal = 4, DsAnimal = "Sapo" }); Animais.Add(new Animal() { IdAnimal = 5, DsAnimal = "Peixe" }); Animais.Add(new Animal() { IdAnimal = 6, DsAnimal = "Lagarto" }); Animais.Add(new Animal() { IdAnimal = 7, DsAnimal = "Urso" }); Animais.Add(new Animal() { IdAnimal = 8, DsAnimal = "Cavalo" }); Animais.Add(new Animal() { IdAnimal = 9, DsAnimal = "Girafa" }); Animais.Add(new Animal() { IdAnimal = 10, DsAnimal = "Elefante" }); Animais.Add(new Animal() { IdAnimal = 11, DsAnimal = "Leão" }); } } }
public class Produto { public int IdProduto { get; set; } public string DsProduto { get; set; } }
public class Animal { public int IdAnimal { get; set; } public string DsAnimal { get; set; } }Nossa Index (View) conterá dois dropdownlists a serem utilizados em nosso exemplo e um botão a ser utilizado no próximo post.
@model ChosenExample.Web.Models.ListHelper @{ ViewBag.Title = "Exemplos"; }Exemplos Chosen
@Html.DropDownListFor(t => t.CdAnimal, new SelectList(Model.Animais, "IdAnimal", "DsAnimal"), "Selecione", new { multiple = "", @class = "chzn-select search-dropdown chosen-select", data_placeholder = "Selecione", style="width:400px" }) @Html.DropDownListFor(t => t.CdProduto, new SelectList(Model.Produtos, "IdProduto", "DsProduto"), "Selecione", new { @class = "chzn-select search-dropdown chosen-select", data_placeholder = "Selecione", style = "width:400px" }) <input type="submit" name="btnEnviar" value="Enviar" />
Antes de seguir em frente, existem alguns pontos interessantes a serem observados e entendidos:
- O atributo multiple = "" indica que o controle será múltipla escolha, tornando possível a seleção de mais de um valor.
- A classe search-dropdown habilita a busca no campo
Ao executar a aplicação, o resultado é o seguinte:
Para inicializar o plugin, basta inserir este trecho de código na página dentro da tag script:
$(document).ready(function(){ $(".chosen-select").chosen() });E pronto! Bem diferente da aparência e comportamento padrão não?
Em uma próxima postagem irei abordar o tratamento e manipulação deste campo na Controller.
Nenhum comentário:
Postar um comentário