Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • 0
ClaudemarR

formulário de alteração de alunos desorganizado. ASP.NET MVC

Pergunta

Ola pessoal sou novo por aqui :)

Preciso de uma ajudinha de vocês, estou tentando inserir o Bootstrap em um programinha MVC segue imagem do problema + código fonte antes estava com form-horizontal mas gostaria de deixar mais  um label do lado do outro mais bem organizado

@model alunos.Models.pessoa

@{
    ViewBag.Title = "Alterando os dados de um aluno";
}

<br/>
<br/>

@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()

    <div class="panel panel-primary">
        <div class="panel-heading">Alteração dos dados de um Aluno</div>

        <div class="panel-body form-inline">


            @Html.ValidationSummary(true, "", new { @class = "text-danger" })
            @Html.HiddenFor(model => model.codigo)

            <div class="form-group">
                @Html.LabelFor(model => model.nome, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.nome, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.nome, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.Endereco, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.Endereco, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.Endereco, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.numero, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.numero, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.numero, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.Bairro, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.Bairro, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.Bairro, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.cidade, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.cidade, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.cidade, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.telefone, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.telefone, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.telefone, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.Cpf, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.Cpf, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.Cpf, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.Rg, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.Rg, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.Rg, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.Email, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.Email, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.Email, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.exame, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.exame, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.exame, "", new { @class = "text-danger" })
                </div>
            </div>

            <div class="panel-footer panel-info">
                <div class="col-md-offset-2 col-md-10">
                    <input type="submit" value="Gravar alterações" class="btn btn-info" />
                    @Html.ActionLink("Retornar para a listagem de Alunos", "Index", null, new { @class = "btn btn-warning" })
                </div>
                <br />
                <br />
            </div>
        </div>
    </div>

}


@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

0 respostas a esta questão

Recommended Posts

Até agora não há respostas para essa pergunta


  • Conteúdo Similar

    • Por Jalber Romano
      Minha View Edit é aberta dentro de uma janela modal Bootstrap através de uma função dinâmica criada para os botões Create, Edit e Delete. Cada botão possui a sua respectiva url de referência e uma propriedade data-modal="" para ser chamada no evento click de cada botão (Ex: data-modal="" href="/pessoa-gerenciar/editar-pessoa/' + full.id). No evento click, é chamada a função "openmodal", a url é passada por parâmetro e a #modalGenerica é aberta. Há também a função "bindForm" que faz com que cada submit dado na view Edit funcione corretamente e que a view Edit permaneça sempre dentro da modal #modalGenerica.
      Até aí tudo perfeito e funcionando corretamente!
      //Bloco da Janela Modal
      <div class="modal fade modal-primary" id="modalGenerica" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content"> <div id="contentModal"> </div> </div> </div> </div> //Controller
      [HttpPost] [Authorize(Policy = "CanWritePessoaData")] [Route("pessoa-gerenciar/editar-pessoa/{id:int}")] [ValidateAntiForgeryToken] public IActionResult Edit(PessoaViewModel pessoaViewModel) { if ((pessoaViewModel.PessoaNatureza == Domain.ValueObjects.Pessoa.PessoaNatureza.Juridica && pessoaViewModel.PessoaJuridicaViewModel == null) || (pessoaViewModel.PessoaNatureza == Domain.ValueObjects.Pessoa.PessoaNatureza.Fisica && pessoaViewModel.PessoaFisicaViewModel == null)) { var pessoa = _pessoaAppService.Change(pessoaViewModel); ModelState.Clear(); return View(pessoa); } if (!ModelState.IsValid) return View(pessoaViewModel); _pessoaAppService.Update(pessoaViewModel); if (IsValidOperation()) ViewBag.Sucesso = "Pessoa Atualizada!"; return View(pessoaViewModel); } //JavaScript
      $(document).ready(function () { $.ajaxSetup({ cache: false }); // busca os elementos do atributo data-modal e os inscreve no evento click $('a[data-modal]').on('click', function (e) { // Abre a janela modal com o formulario solicitado openmodal(this.href); return false; }); $('table').on('click', 'a[data-modal]', function (e) { //Este tratamento personaliza a Modal Excluir if (this.id == 'btnExcluir') { $(".modal-dialog").addClass("modal-lg"); $(".modal-dialog").addClass("modal-danger"); } openmodal(this.href); return false; }); $('#modalGenerica').on('hidden.bs.modal', function () { $('#contentModal').html(''); }); dataTablePrincipalLoad(); }); function openmodal(url) { // Faz uma requisição get e carrega o formulário na janela modal $('#contentModal').load(url, function () { $('#modalGenerica').modal({ keyboard: true }, 'show'); //Enviar o foco para campo Descrição $('#modalGenerica').on('shown.bs.modal', function (event) { // $("#txtNomeCompleto").focus(); }); $("#pessoaNatureza").on('change', function (event) { document.getElementById("frmEdit").submit(); //open(ur); }); // Inscreve o evento submit bindForm(this); }); } function bindForm(dialog) { // Inscreve o formulário na janela modal com o evento submit $('form', dialog).submit(function () { if ($(this).valid()) { // Realiza una requisição ajax $.ajax({ url: this.action, type: this.method, data: $(this).serialize(), success: function (result) { // Se a requisição for satisfatória, recarrega a página atual if (result.success) { window.location = window.location; } else { $('#contentModal').html(result); bindForm(); } } }); return false; } else { return false; } }); } function dataTablePrincipalLoad() { $('.dataTables_filter input').attr('placeholder', 'Search...').hide(); var table = $("#dtPrincipal").DataTable({ "processing": true, // for show progress bar "serverSide": true, // for process server side "filter": true, // this is for disable filter (search box) "orderMulti": false, // for disable multiple column at once //"dom": '<"top"i>rt<"bottom"lp><"clear">', // "ordering": false, "ajax": { "url": '/pessoa-gerenciar/getPessoa', "type": "POST", "datatype": "json" }, "columnDefs": [ //Estilos Das Colunas { className: "align-center", "targets": [0] }, { className: "align-center", "targets": [3] }, //Largura das Colunas { width: 100, targets: 0 }, { width: 100, targets: 3 } ], "columns": [ { "data": "id", "name": "Id", "autoWidth": true }, { "data": "nomeRazao", "name": "NomeRazao", "autoWidth": true }, { "data": "apelidoFantasia", "name": "ApelidoFantasia", "autoWidth": true }, { "render": function (data, type, full, meta) { return '<div class="btn-group" aria-label="Button group with nested dropdown" role="group"><a id="btnEditar" data-modal="" href="/pessoa-gerenciar/editar-pessoa/' + full.id + '"class="btn btn-sm btn-icon btn-default btn-outline" title="Visualizar/Editar"><i class="icon wb-edit" aria-hidden="true"></i></a><a id="btnExcluir" data-modal="" href="/pessoa-gerenciar/remover-pessoa/' + full.id + '" class="btn btn-sm btn-icon btn-default btn-outline" title="Excluir"><i class="icon wb-trash" aria-hidden="true"></i></a><div class="btn-group" role="group"><a title="Mais Ações" class="btn btn-sm btn-outline btn-default dropdown-toggle" id="exampleGroupDrop2" data-toggle="dropdown" aria-expanded="false"><i class="icon wb-grid-4" aria-hidden="true"></i></a><div class="dropdown-menu" aria-labelledby="exampleGroupDrop2" role="menu"><a class="dropdown-item" href="javascript:void(0)" role="menuitem"><i class="icon wb-time" aria-hidden="true"></i>Histórico</a></div></div></div>'; } } ], "language": { "sEmptyTable": "Nenhum registro encontrado", "sInfo": "Mostrando de _START_ até _END_ de _TOTAL_ registros", "sInfoEmpty": "Mostrando 0 até 0 de 0 registros", "sInfoFiltered": "(Filtrados de _MAX_ registros)", "sInfoPostFix": "", "sInfoThousands": ".", "sLengthMenu": "_MENU_ resultados por página", "sLoadingRecords": "Carregando...", "sProcessing": "Processando...", "sZeroRecords": "Nenhum registro encontrado", "sSearch": "Pesquisar", "searchPlaceholder": "Digite algo...", "oPaginate": { "sNext": "Próximo", "sPrevious": "Anterior", "sFirst": "Primeiro", "sLast": "Último" }, "oAria": { "sSortAscending": ": Ordenar colunas de forma ascendente", "sSortDescending": ": Ordenar colunas de forma descendente" } } }); $('.search-input').on('keyup change', function () { var index = $(this).attr('data-column'), val = $(this).val(); table.columns(index).search(val.trim()).draw(); }); } //View Edit
      @using Retaguarda.Domain.ValueObjects.Pessoa @model Retaguarda.Application.ViewModels.Pessoa.PessoaViewModel @{ ViewData["Title"] = "Editar Pessoa"; Layout = null; } <div> <form asp-action="Edit" asp-controller="Pessoa" id="frmEdit"> @Html.AntiForgeryToken() <div class="modal-shadow"> <div class="modal-header modal-header-primary"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> <h4 class="modal-title text-center"> @ViewData["Title"] </h4> </div> <div class="form-horizontal"> <você:summary /> <div class="panel-body"> @await Html.PartialAsync("_Pessoa") @if (Model.PessoaNatureza == PessoaNatureza.Fisica) { <div id="divPessoaFisica"> @await Html.PartialAsync("_PessoaFisica") </div> } else if (Model.PessoaNatureza == PessoaNatureza.Juridica) { <div id="divPessoaJuridica"> @await Html.PartialAsync("_PessoaJuridica") </div> } </div> </div> <div class="modal-footer"> <div class="col-md-offset-2 col-md-10"> <button id="btnSalvar" type="submit" class="btn btn-primary"><i class="icon wb-check"></i> Salvar </button> <button id="btnFechar" class="btn btn-danger" data-dismiss="modal"><i class="icon wb-close"></i> Fechar </button> </div> </div> </div> </form> </div> <script src="~/lib/jquery-validation/dist/jquery.validate.js"></script> <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script> @section Scripts { @{await Html.RenderPartialAsync("_ValidationScriptsPartial");} } PROBLEMA:
      Quando eu seleciono no dropdown #pessoaNatureza uma determinada pessoa (por exemplo pessoa jurídica), preciso fazer um submit no evento change para que a model seja alterada com dados de pessoa jurídica e preciso que a view Edit seja retornada para dentro da mesma janela modal, mas isso não está acontecendo e a view é aberta em uma página e com um layout desconfigurado. Parece que o bind não funcionada... (O Interessante é que para Salvar funciona perfeitamente, mas para o evento change do drop-down não!). Acho que estou tentando dar o submit com document.getElementById("frmEdit").submit(); e não está fazendo o bind corretamente, pois não passa pela função openmodal. Já tentei fazer isso, mas não consegui, pois teria que chamar a função de dentro dela... ALguém saberia como me ajudar?
       
      $("#pessoaNatureza").on('change', function (event) { document.getElementById("frmEdit").submit(); //open(ur); });  

    • Por Cyberlacs
      Tenho uma página que tem uma tabela, o usuário tem a opção de ordenar as linhas desta tabela com evento drag and drop.
      O evento funciona perfeitamente no windows, Chrome, Internet Explorer, Firefox.
       
      Quero que esta tabela funcione em dispositivo móvel para ser mais exato com Android pois vou usar internamente dentro da empresa onde trabalho e lá usa somente tablets e celulares com OS Android.
       
      Em minha tabela inseri um id sortable
      <tbody id="sortable" style="cursor:pointer"> e também nesta linha o script pega a linha com os valores
      <td class="taskSingleInLine" id="task@(Model.LoteList.ElementAt(i).NumeroLote)" data-taskid="@(Model.Genero.ElementAt(i).GeneroId)-@(i+1)"> Segue abaixo código Javscript/Ajax e o html
      <script src="~/Scripts/jquery-ui-1.12.1.min.js"></script> <script> $(document).ready(function () { $("#sortable").sortable({ update: function (event, ui) { var itemIds = ""; $("#sortable").find(".taskSingleInLine").each(function () { var itemId = $(this).attr("data-taskid"); itemIds = itemIds + itemId + ","; }); $.ajax({ url: '@Url.Action("UpdateItem", "Lotes")', data: { itemIds: itemIds }, type: 'POST', success: function (data) { location.reload(); }, error: function (xhr, status, error) { } }); } }); }); </script>  
      Html - ASP.NET MVC
      <div class="table-responsive"> <table class="table table-hover table-striped"> <thead> <tr> <th> @Html.DisplayNameFor(model => model.Lote.NumeroLote) </th> </tr> </thead> <tbody id="sortable" style="cursor:pointer"> @for (var i = 0; i < Model.LoteList.Count(); i++) { <tr> <td class="taskSingleInLine" id="task@(Model.LoteList.ElementAt(i).NumeroLote)" data-taskid="@(Model.Genero.ElementAt(i).GeneroId)-@(i+1)"> @Html.DisplayFor(Model => Model.LoteList.ElementAt(i).NumeroLote) </td> </tr> } </tbody> </table> </div>
    • Por JullySL
      Boa tarde! 

      Gostaria da ajuda de vocês, fiz um autocomplete na tela de cadastros de chamados, para quando o usuário estiver cadastrando um um chamado, se for cliente novo ou existente, se ele digitar Maria e tiver 3 Marias cadastradas ele irá selecionar a Maria que se refere o chamado, selecionando a Maria existente quando ele pressionar para o próximo campo eles serão autopreenchidos com as informações do cliente que está na base de dados, porém quando o cliente não existir apenas dar continuidade ao cadastro. O Problema do meu código é:
      Tenho cadastrado no cadastro de clientes:
      Cliente1: Maria Santos
      Cliente 2: Maria Virginia
      Se eu selecionar Maria Virginia ele trás os dados tanto da Maria Santos quanto da Maria Virginia,sendo que se eu selecionei Maria Virginia não tem por que ele trazer dados de outro cliente certo?! segue script
      Crontroller:
       
      Controller
      [HttpGet]         public ActionResult Index()         {             return View();         }         [HttpPost]         public JsonResult Index(string Prefix)         {             ClienteAplicacao appCliente = new ClienteAplicacao();             var ListarCliente = appCliente.ListaTodos();                          var ClienteNome = (from N in ListarCliente                                where N.Nome.StartsWith(Prefix)                                select new { N.Nome, N.Id, N.Email });             return Json(ClienteNome, JsonRequestBehavior.AllowGet);         }         public JsonResult ClienteList(string Id)         {             ClienteAplicacao appCliente = new ClienteAplicacao();             var ListaCliente = appCliente.ListaTodos();                         var resultado = (from c in ListaCliente                              where (c.Nome.ToLower().Contains(Id.ToLower()))                              select c).ToList();                    return Json(resultado, JsonRequestBehavior.AllowGet);         } Jquery
       
         
       $(document).ready(function () {         $("#Nome").autocomplete({             source: function (request, response) {                 $.ajax({                     url: "/Autocom/Index",                     type: "POST",                     dataType: "json",                     data: { Prefix: request.term },                     success: function (data) {                         response($.map(data, function (item) {                             return {                                 label: item.Nome + ", " + item.Email,                                 value: item.Nome                                                              };                             //return data;                          }))                         $('#Nome').blur(function () {                             var aChk = document.getElementsByName('Nome');                             var texto = texto + (aChk.value)                             $('#lbairro').val(texto);                             alert(texto);                             $.getJSON('/Autocom/ClienteList/' + $('#Nome').val(), function (data) {                                 var items = '';                                 $.each(data, function (i, cliente) {                                                                          items += 'E-mail:<input type="email" id="Email" name="Email" value="' + cliente.Email + '" class="txtInputMax" />';                                                                      });                                                                  $('#rData').html(items);                             });                         })                     }                 })             },                      });              })

      Formulário

       
      <input id="NomeCliente" name="NomeCliente" type="hidden" value="" />     <div>         Nome:         <input name="Nome" id="Nome" type="text" class="txtInputMax" />     </div>     <div class="editor-field" id="rData">             E-mail:             <input name="Email" id="Email" type="text" class="txtInputMax" />     </div> Agradeço quem puder ajudar!
    • Por JullySL
      Boa tarde!

      Eu tenho o IIS 7 configurado para aplicações asp classic e agora estou trabalhando com o ASP.NET MVC porém ele já vem configurado o IIS Express, estou tendo dificuldades para usar o Binding Domain, achei um tutorial onde explica o passo a passo, porém ao abrir o arquivo applicationhost no tutorial informa que vou achar o nome do meu projeto, o problema começa por ai não acho o nome do meu projeto para manipular os bindings.
      O que pretendo fazer os os binging domain é usar sites multiplos
      o tutorial é este: http://www.tiselvagem.com.br/desenvolvimento/net/dominio-fake-alias-de-dominio-e-binding-de-dominios-no-iisexpress/

      Alguém pode me ajudar por favor?
    • Por lazuardio
      Então, eu estou movendo minha Asp.net mvc app web até asphostportal hospedagem compartilhada. Esta é a primeira vez que eu implantado um aplicativo MVC. Eu tenho usado o SQL Server 2008 Express para o banco de dados de desenvolvimento. asphostportal fornece SQL Server 2008 ou MySQL hospedado bancos de dados.

      Algumas perguntas:

      1. Posso usar os arquivos mdf de meu banco de dados Express com o novo prodcution Non-Express DB?

      2.I'm tendo problemas com a minha string de conexão. Eu mudei a string original conexão de configuração web a partir desta:

      <Add name = connectionString "Database1ConnectionString" = "Data Source = \ SQLEXPRESS;. AttachDBFilename = | DataDirectory | \ Database1.mdf; Integrated Security = True; instância de usuário = True" providerName = "System.Data.SqlClient" /> para isso:


      <Add name = "Database1ConnectionString" connectionString = "Data Source = .; Integrated Security = SSPI; Initial Catalog = ProdsDB" providerName = "System.Data.SqlClient" /> Agora eu estou recebendo este erro: Não é possível abrir banco de dados "ProdsDB" solicitado pelo logon. O login falhou

      Eu tenho a configuração do banco de dados chamado "ProdsDB" no painel de controle Asphostportal e acrescentou um usuário. Preciso adicionar as credenciais em algum lugar na cadeia de ligação?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.