Usuário com melhor resposta
Como NÃO renderizar o formulário?

Pergunta
-
Boa tarde pessoal,
Não sei se essa é a pergunta certa, mas o que acontece: tenho um formulário(filtro) e retorno alguma informações para uma tabela na tela. Só que quando clico em pesquisar, a página inteira é atualizada e não apenas a tabela. Com isso, o meu dropdownlist, por exemplo, volta para a a primeiro valor da lista. O formulário que não quero que renderize com a página inteira é o :
@using (Html.BeginForm("BuscaMedicoes", "Home", FormMethod.Get))
Segue o código:
@model IEnumerable<SarMvc.MedicaoDado> @{ ViewBag.Title = "SAR"; } <div class="row"> <div class="col-md-3"> <div class="panel panel-primary" style="height:500px" id="panelPesquisa"> <div class="panel-heading" style="height:44px;">::. Campos para Pesquisa</div> @using (Html.BeginForm("BuscaMedicoes", "Home", FormMethod.Get)) { @Html.ValidationSummary(true) <div class="panel-body"> <br/> <div class="form-group"> <div class="col-md-13"> Estado: @{ ColetorReservatorioEntities db = new ColetorReservatorioEntities(); var selectEstado = new SelectList(db.Estado.OrderBy(x => x.est_nome), "est_id", "est_nome"); @Html.DropDownList("DropDownListEstados", selectEstado, new { @class = "form-control"}) @Html.ValidationMessage("DropDownListEstados") } @*Html.DropDownList("DropDownListEstados1", (IEnumerable<SelectListItem>)ViewBag.est_id, new { @class = "form-control" })@*@ </div> </div> <div class="form-group"> <div class="col-md-13"> Data: <input name="data" type="text" class="form-control" placeholder="dd/MM/yyyy" onkeyup="mascaraData(this);" maxlength="10" value="@DateTime.Now.ToString("dd/MM/yyyy")" /> </div> </div> <br/> <div class="form-group"> <div class="col-md-13"> <label> Escolha a tipo de Pesquisa que deseja fazer:</label> </div> </div> <div class="form-group"> <div class="col-md-13"> <input name="tpConsulta" type="radio" value="1" checked/> Dado mais próximo da data </div> </div> <div class="form-group"> <div class="col-md-13"> <input name="tpConsulta" type="radio" value="2" /> Último dado por reservatório </div> </div> <br/> <input type="submit" value="Pesquisar" class="btn btn-success" onclick="mostraDivResultado();"/> </div> } </div> </div> <div id="resultadoPesquisa"> <div class="row"> <div class="col-md-12"> <div class="panel panel-primary"> <div class="panel-heading" style="height:44px;"> <div class="row"> <div class="col-md-11">::. Resultado da Pesquisa</div> @using (Html.BeginForm("ExportaExcel", "Home", FormMethod.Post)) { <div class="col-md-1"><input type="image" src="~/img/export_excel_icon.png" /></div> } </div> </div> <div class="panel-body"> <div style="height:600px;overflow:scroll;"> <table class="table table-hover"> <tr> <th> @Html.DisplayName("Código") </th> <th> @Html.DisplayName("Reservatório") </th> <th> @Html.DisplayName("UF") </th> <th> @Html.DisplayName("Bacia") </th> <th> @Html.DisplayName("Município") </th> <th> @Html.DisplayName("Capacidade (hm3)") </th> <th> @Html.DisplayName("Volume (hm3)") </th> <th> @Html.DisplayName("Volume (%)") </th> <th> @Html.DisplayName("Data") </th> <th></th> </tr> @foreach (var item in Model) { decimal volPercentual = Decimal.Round(Convert.ToDecimal((item.med_volume * 100) / item.Reservatorio.res_capacidade),2); <tr> <td> @Html.DisplayFor(modelItem => item.Reservatorio.res_id) </td> <td> @Html.DisplayFor(modelItem => item.Reservatorio.res_nome) </td> <td> @Html.DisplayFor(modelItem => item.Reservatorio.Municipio.Estado.est_sigla) </td> <td> @Html.DisplayFor(modelItem => item.Reservatorio.Bacia.bac_nome) </td> <td> @Html.DisplayFor(modelItem => item.Reservatorio.Municipio.mun_nome) </td> <td> @Html.DisplayFor(modelItem => item.Reservatorio.res_capacidade) </td> <td> @Html.DisplayFor(modelItem => item.med_volume) </td> <td> @Html.DisplayName(volPercentual.ToString()) </td> <td> @Html.DisplayFor(modelItem => item.med_data_medicao) </td> </tr> } </table> </div> </div> </div> </div> </div> </div>
- Editado Rafael Rodriguess quarta-feira, 27 de novembro de 2013 14:30 alt
Respostas
-
Uma outra solução que eu vi Rafael foi a utilização de PartialViews, você já tentou utilizar?
Com a PartialView você consegue da sua Controller carregar apenas determinado "bloco" da sua página.
Espero que o link ajude.
Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs
- Marcado como Resposta Rafael Rodriguess quinta-feira, 28 de novembro de 2013 11:41
Todas as Respostas
-
Olhe esse post cara, acho que a sua resposta está aqui.
Abraço.
Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs
-
-
Uma outra solução que eu vi Rafael foi a utilização de PartialViews, você já tentou utilizar?
Com a PartialView você consegue da sua Controller carregar apenas determinado "bloco" da sua página.
Espero que o link ajude.
Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs
- Marcado como Resposta Rafael Rodriguess quinta-feira, 28 de novembro de 2013 11:41
-
Boa tarde,
você está utilizando MVC, o paradigma é web.
Se você vem de ASPX (como eu) terá uma certa dificuldade nesse ponto (como eu tive).
A idéia nesse caso é você executar requisição Ajax (Asynchronous Javascript and XML).
http://www.devmedia.com.br/asp-net-mvc-e-ajax-atualizando-o-conteudo-de-partial-views-via-jquery/26232
Não é complicado.
Espero ter ajudado.
-
Usei partial view com ajax e funcionou!!!
Obrigado pessoal!
- Editado Rafael Rodriguess quinta-feira, 28 de novembro de 2013 11:40 alt