Usuário com melhor resposta
DropDownList não seleciona item

Pergunta
-
Olá,
estou fazendo uma view para editar um registro, e nos campos DropDownList eu uso class para ajustar o width do componente.
Porém se eu uso assim, não traz nada selecionado:
@Html.DropDownList("TipoPessoaID", (SelectList)ViewBag.TipoPessoaID, String.Empty, new { style = "width:95px;" })
Porém se faço assim, retorna o item selecionado corretamente, porém com o tamanho errado:
@Html.DropDownList("TipoPessoaID", String.Empty)
Por que será que está acontecendo isto?
abs
Marlon Tiedt
www.sesmt.com.br
Respostas
-
Murilo, descobri o problema...O algo estava se perdendo..
Se eu fizer no controller assim:
ViewBag.TipoPessoaID = new SelectList(db.TipoPessoa, "TipoPessoaID", "Descricao", pessoa.TipoPessoaID);
e na view assim:
@Html.DropDownList("TipoPessoaID", (SelectList)ViewBag.TipoPessoaID, String.Empty, htmlAttributes: new { style = "width:95px;" })
ele não seta os dados...
Porém se no controller fazer:
ViewBag.TipoPessoa = new SelectList(db.TipoPessoa, "TipoPessoaID", "Descricao", pessoa.TipoPessoaID);
e na view assim:
@Html.DropDownList("TipoPessoaID", (SelectList)ViewBag.TipoPessoa, String.Empty, htmlAttributes: new { style = "width:95px;" })
funciona...
Pelo jeito estava dando confussão no TipoPessoaID...
Valeu pela ajuda galera...
absMarlon Tiedt
www.sesmt.com.br- Marcado como Resposta Marlon Tiedt segunda-feira, 29 de outubro de 2012 13:29
Todas as Respostas
-
Tenta assim:
@Html.DropDownList("TipoPessoaID", (SelectList)ViewBag.TipoPessoaID, htmlAttributes: new { style = "width:95px;" })
http://www.linkedin.com/pub/murilo-kunze/44/191/455
- Editado Murilo Kunze sexta-feira, 26 de outubro de 2012 12:52
-
-
Marlon, o string.Empty será o parametro optionLabel do método DropDownList, ou seja, aquilo será o primeiro <option> do <select>.
Se você quer que venha algum <option> selecionado, você tem que fazer isso quando você cria o SelectList.
http://www.linkedin.com/pub/murilo-kunze/44/191/455
-
Olá, Murilo,
a origem de ambos DropDownList é a mesma, porém quando uso String.Empty este não seleciona o valor, mesmo setado no SelectList.
Assim ok:
@Html.DropDownList("TipoPessoaID", (SelectList)ViewBag.TipoPessoaID, htmlAttributes: new { style = "width:95px;" })
Assim não seleciona:
@Html.DropDownList("TipoPessoaID", (SelectList)ViewBag.TipoPessoaID, String.Empty, htmlAttributes: new { style = "width:95px;" })
absMarlon Tiedt
www.sesmt.com.br -
-
-
Porque isso você tem que fazer na classe SelectList e não no método DropDownList:
var clients = new List<Person>{ new Person{Id= 1, Name= "a"}, new Person{Id= 2, Name= "b"}, new Person{Id= 3, Name= "c"} }; ViewBag.Lista = new SelectList(clients, "Id", "Name", clients[1]);
Neste caso o client[1] apareceria selecionado.
http://www.linkedin.com/pub/murilo-kunze/44/191/455
-
Murilo, a minha dúvida é porque quando uso String.Empty este não seleciona o valor.
Aqui está meu controller:
ViewBag.TipoPessoaID = new SelectList(db.TipoPessoa, "TipoPessoaID", "Descricao", pessoa.TipoPessoaID);
Como você pode visualizar, já seto o pessoa.TipoPessoaID.
Quando na view eu uso
@Html.DropDownList("TipoPessoaID", (SelectList)ViewBag.TipoPessoaID, htmlAttributes: new { style = "width:95px;" })
o DropDownList vem preenchido.
Porém quando uso
@Html.DropDownList("TipoPessoaID", (SelectList)ViewBag.TipoPessoaID, String.Empty, htmlAttributes: new { style = "width:95px;" })
ele não preenche o DropDownList.
Isto que é a minha dúvida...Porque não funciona igual o processo.
absMarlon Tiedt
www.sesmt.com.br -
-
Ele traz tudo certinho, todos os registros. Mas somente não seleciona o registro informado. Ele não marca selected no segundo caso.
@Html.DropDownList("TipoPessoaID", (SelectList)ViewBag.TipoPessoaID, htmlAttributes: new { style = "width:95px;" })
Deste jeito o DropListBox, tem o registro "Física" selecionado.
@Html.DropDownList("TipoPessoaID", (SelectList)ViewBag.TipoPessoaID, String.Empty, htmlAttributes: new { style = "width:95px;" })
Assim não traz "Fisica" selecionado.
Ambos os casos usando o mesmo ViewBang.
absMarlon Tiedt
www.sesmt.com.br -
Então não sei cara :(
Teria que dar uma boa olhada no código.
Fiz uns testes aqui e funcionou.
http://www.linkedin.com/pub/murilo-kunze/44/191/455
- Editado Murilo Kunze sexta-feira, 26 de outubro de 2012 17:15
-
Murilo, descobri o problema...O algo estava se perdendo..
Se eu fizer no controller assim:
ViewBag.TipoPessoaID = new SelectList(db.TipoPessoa, "TipoPessoaID", "Descricao", pessoa.TipoPessoaID);
e na view assim:
@Html.DropDownList("TipoPessoaID", (SelectList)ViewBag.TipoPessoaID, String.Empty, htmlAttributes: new { style = "width:95px;" })
ele não seta os dados...
Porém se no controller fazer:
ViewBag.TipoPessoa = new SelectList(db.TipoPessoa, "TipoPessoaID", "Descricao", pessoa.TipoPessoaID);
e na view assim:
@Html.DropDownList("TipoPessoaID", (SelectList)ViewBag.TipoPessoa, String.Empty, htmlAttributes: new { style = "width:95px;" })
funciona...
Pelo jeito estava dando confussão no TipoPessoaID...
Valeu pela ajuda galera...
absMarlon Tiedt
www.sesmt.com.br- Marcado como Resposta Marlon Tiedt segunda-feira, 29 de outubro de 2012 13:29
-