Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Atualizar uma tabela

É o seguinte

Minha dúvida tem a ver com o tema da aula mas não com o projeto do curso em si. Eu criei um form onde eu filtrar os dados de uma tabela. Quando dou um submit nesse form, ele recarrega a página e preenche dois objetos com os dados digitados em cada text box. Minha dúvida é, como eu poderia fazer esse submit, enviar os dados digitados em cada text box, filtrar minha tabela com o que o usuário digitou, e devolver um DataTable para a view usando AJAX?

Meu Controller

 public ActionResult Consultar(Requerimento req, Status st)
        {

            Repositorio rep = new Repositorio(cnn);
            DataTable dt = new DataTable();

            if (st.ID == 0)
            {
                dt = rep.ListaRequerimentoFiltrado(req);
            }
            else
                dt = rep.ListaRequerimentoFiltrado(req, st);



            return View(dt);
        }

Minha View


@using REQ_FRB.Models
@using System.Data;
@model System.Data.DataTable

<title>Consultar</title>
    <div> 
        @using (Html.BeginForm("Consultar", "Requerimento", FormMethod.Post))
        {
           <p>
               Filtrar por Requerente : @Html.TextBox("req.Requerente")
               &nbsp; Filtrar por Aluno : @Html.TextBox("req.Aluno")
               &nbsp; Filtrar por Protocolo : @Html.TextBox("req.Protocolo") 
                <br /> <br />          
               Filtrar por Status :<select name="st.ID">
                                      <option value="0">Todos</option>
                                      <option value="1">Em Processo</option>
                                      <option value="2">Pronto</option>
                                      <option value="3">Retirado</option>
                                   </select>


            <br /><br /><input type="button" value="Filtrar" class="btn btn-primary"/>
        </p>
        }


        <table class="table table-bordered table-responsive">
            <thead>
                <tr>
                   @foreach (DataColumn col in Model.Columns)
                   {
                       if (col.ColumnName != "Status_ID" && col.ColumnName != "ID")
                       {
                           <th>@col.ColumnName.ToString()</th>
                       }
                   }


                </tr>
            </thead>
            <tbody>

                    @foreach (DataRow row in Model.Rows)
                    {
                        <tr>

                            <td>@row["Protocolo"].ToString()</td>
                            <td>@row["Requerente"].ToString()</td>
                            <td>@row["Aluno"].ToString()</td>
                            <td>@row["Status"].ToString()</td>
                            <td>@row["Data de Retirada"].ToString()</td>
                            <td>@Html.ActionLink("Editar", "Editar", new { ID = row["ID"] })</td>

                        </tr>
                    }

            </tbody>
        </table>

        <br /><br /><br />


        <input type="button" class="btn btn-primary" onclick="window.location = '/Requerimento'" value="Voltar" />

    </div>
1 resposta
solução!

Oi João por ajaxa você vai ter que retornar a resposta em algum formato fácil de ler (JSON por exemplo) e manipular tudo via javascript, não tem como devolver um DataTable direto via javascript.

Espero ter ajudado, Abraços.