Como setar a posição de uma lista select via jquery ?

05/09/2015

Bom dia!,
Como faço para posicionar o "Fornecedor" correspondente ao "Produto" ao abrir a tela de Edição do Produto ?

Esse é o código que traz a lista de todos os "Fornecedores":
$.ajax({
                    url: "/Fornecedor/ListarFornecedor",
                    type: "POST",
                    dataType: "json",
                    contentType: "application/json; charset=uft-8",
                    data: null,
                    success: function (data) {
                        $.each(data.Result, function (i, item) {
                            $("#ddlFornecedor").append("<option value=" + item.TBFORNECEDORID + ">" + item.DSFORNECEDOR + "</option>")
                        });
                    },
                    error: function (xhr, err) {
                        alert("erro:" + err.message);
                    }
                });


Na view tenho o ID do Fornecedor (TBFORNECEDORID ):

<input type="hidden" value="" id="hidTBPRODUTOID"/>


Os Fornecedores são carregados com sucesso:
[img]http://arquivo.devmedia.com.br/forum/imagem/247411-20150905-100103.jpg[/img]

Porém na lista o Fornecedor não fica posicionado:
[img]http://arquivo.devmedia.com.br/forum/imagem/247411-20150905-100155.jpg[/img]

Obrigado!

Adriano Cordeiro

Currículo

Melhor resposta

05/09/2015

Penso que você poderia utilizar o selected attribute com sua lógica. Verificar se o fornecedor do produto for igual a algum da listagem e atribui como selecionado.
Veja o exemplo no w3schools.

http://www.w3schools.com/tags/att_option_selected.asp

Espero ter ajudado.

Lopes

Responder Citar

Outras Respostas

05/09/2015

Adriano Cordeiro Currículo

Não sei se é a melhor maneira, mas fiz assim:

$.each(data.Result, function (i, item) {
                            var selected = "";

                            if (item.TBFORNECEDORID == $("#hidTBPRODUTOID").val()) {
                                selected = " selected";
                            } else {
                                selected = "";
                            };

                            $("#ddlFornecedor").append("<option value=" + item.TBFORNECEDORID + " " + selected + " >" + item.DSFORNECEDOR + "</option>")

                        });
Responder Citar