ASP CLASSICO ASP.NET C# SQL / DATABASE VB / VBA VB.NET Todos os fóruns 

VERIFICAR SE CÓDIGO JÁ EXISTE

 Tópico anterior Próximo tópico Novo tópico

VERIFICAR SE CÓDIGO JÁ EXISTE

ASP.NET

 Compartilhe  Compartilhe  Compartilhe
#469423 - 05/12/2016 13:59:57

PERCIFILHO
MATAO [SP]
Cadast. em:Dezembro/2009


Última edição em 05/12/2016 16:35:35 por PERCIFILHO

Boa tarde, amigos!
Estou procurando uma forma de fazer com que ao usuário digitar um código de produto, quando o cursor sair do campo, seja verificado na tabela de dados; se o código existir emite uma mensagem de que o código já está cadastrado. Procurei na internet mas ainda não encontrei como se faz.
Aqui a parte da View que recebe o campo código:
@using (Html.BeginForm())
{
    @Html.ValidationSummary()
    @Html.Label("Código", htmlAttributes: new { @class = "rotulo" })
    <br />
    @Html.TextBoxFor(model => model.Codigo, new { style = "width:120px;", @class = "dados", @maxlength = "20" })
    @Html.ValidationMessageFor(model => model.Codigo, "", new { @class = "text-danger" })
}



____________________________________________________
Muitos fracassados na vida são pessoas que não perceberam
que estavam tão perto do sucesso e preferiram desistir




Resposta escolhida #469427 - 05/12/2016 16:22:31

JABA
CABO FRIO
Cadast. em:Agosto/2005


Última edição em 05/12/2016 16:30:32 por JABA

stackoverflow.com/questions/26628785/asp-net-mvc-4-5-onblur-event-textbox

Ex:
@Html.EditorFor(model => model.id)

$(function () {
    $('#id').blur(function () {
           // código aqui
    });
});


O princípio é o mesmo que do exemplo do combobox que te passei uma vez. Vai ter que usar Javascript ou Jquery.


_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



#469484 - 07/12/2016 16:11:35

PERCIFILHO
MATAO [SP]
Cadast. em:Dezembro/2009


Boa tarde, Jaba.
Se eu conseguir fazer a consulta dessa maneira:

Na View:
            @using (Html.BeginForm("BuscaItemFornecedor", "ItensFornecedor"))
            {
                @Html.Label("Código", htmlAttributes: new { @class = "rotulo" })
                <br />
                @Html.TextBoxFor(model => model.Codigo, new { style = "width:120px;", @class = "dados", @maxlength = "30", @id = "CodigoItemFornecedor" })
                @Html.ValidationMessageFor(model => model.Codigo, "", new { @class = "text-danger" })

                <button type="submit"
                        style="border-style:none; background-color:transparent; position:absolute; float:right; padding-bottom:5px;">
                    <img alt="Consulta" title="Consulta" src="~/Content/pesquisar.png">
                </button>
                <input id="message" type="text" style="position:absolute; float:right;" />
            }


Na Controller:
        public JsonResult BuscaItemFornecedor(string codigo = "")
        {
            var query = db.ItemFornecedor.Where(x => x.Codigo == codigo).ToList();
            if (query.Count != 0)
            {
                foreach (var item in query)
                {
                    ViewBag.descricao = item.Descricao;
                }
            }
            return Json(ViewBag.descricao);
        }


Já vi que a ViewBag.descricao retorna a descricao do produto (que é o que eu preciso), agora, como faço para mostrar essa descrição na text "message"?

____________________________________________________
Muitos fracassados na vida são pessoas que não perceberam
que estavam tão perto do sucesso e preferiram desistir




#469505 - 07/12/2016 23:15:00

JABA
CABO FRIO
Cadast. em:Agosto/2005



Para usar a ViewBag é só chamá-la na view da forma com que ela foi declarada. Ex:

@Html.TextBoxFor(model => ViewBag.descricao, new { style = "width:120px;", @class = "dados", @maxlength = "30", @id = "CodigoItemFornecedor" })


_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



#469513 - 08/12/2016 10:35:43

PERCIFILHO
MATAO [SP]
Cadast. em:Dezembro/2009


Acontece, que quando retorna da JsonResult, para a View, é exibido o resultado do Json em uma nova página, e na verdade eu gostaria que fosse mostrado nesta minha TextBox ou numa Label, tanto faz, só não sei como fazer para utilizar esse resultado do Json (que no caso é a descrição) para mostrar onde eu quiser.

Dessa forma que você mencionou para utilizar a ViewBag, não funcionou, aparece a mensagem: An expression tree may not contain a dynamic operation


____________________________________________________
Muitos fracassados na vida são pessoas que não perceberam
que estavam tão perto do sucesso e preferiram desistir




#469518 - 08/12/2016 14:13:02

JABA
CABO FRIO
Cadast. em:Agosto/2005


Coloque isso no controller do objeto que está querendo a ID. O Json serve para pegar somente dados, nada de html.
public JsonResult ObterID(int codigo)
        {
    // aqui você faz uma consulta no banco para pegar a id
            var id = SuaConsulta.GetId(codigo);

           //Retorna o valor em JSON
            return Json(id, JsonRequestBehavior.AllowGet);
        }


<script type="text/javascript">

// Aqui ele verifica se toda a página já foi carregada. As vezes um página é muito grande e nem todos os controles são carregados no mesmo momento, daí o controle que você pode estar querendo pode não estar carregado, e senão estiver, o código não funcionará, pois para o browser o controle que você quer ainda não existe.
    $(document).ready(function () {
        
   // O IdItem abaixo é a id que você deu para o controle na view. O blur é o evento que controla a perda do foco.
        $('#IdItem').blur(function () {
        
        //Pega o valor do controle que está com o foco
        var id = $(this).val();

           // Aqui ele vai executar a função acima no servidor, se tiver alguma coisa, eles ficarão disponíveis na variável "dados" para serem usados no browser.
            $.getJSON('/AquiVaiARotaDoControllerParaAfuncaoAcimaObterID', { codigo: id }, function (dados) {
  
// Se retornou algum dado é porque o id existe, senão viria vazio.
                if (dados.length == 0) {
            // Emite um alerta dizendo que o id não existe
                 alert("Id inexistente");        
                }
            });
        });
    });
</script>


_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por PERCIFILHO em 19/12/2016 09:46:27