проблема загрузки Jquery Datatable с помощью текстового поля - PullRequest
0 голосов
/ 05 ноября 2018

Надеюсь, что кто-то может помочь мне с этим.

это мой контроллер

 namespace PruebaBusquedaRun.Controllers
 {
public class TestController : Controller
{
    MandatosModel md = new MandatosModel();
    // GET: Test
    public ActionResult Index()
    {
        return View();
    }


    public ActionResult TestDataTable(string run)
    {


        List<MandatosModel> lmm = new List<MandatosModel>();

        DataSet ds = new DataSet();
        Int64 asd = Convert.ToInt64(run);
        Conexion.ConexionOra conexora = new Conexion.ConexionOra();

        ds = conexora.getMandatosPorRun(asd);

        foreach (DataRow dr in ds.Tables[0].Rows)
        {
            lmm.Add(new MandatosModel
            {

                FOLIO = Convert.ToInt64(dr["FOLIO"]),
                IDCAJA = Convert.ToInt64(dr["IDCAJA"]),
                NOMBRES = dr["NOMBRES"].ToString(),
                A_PATERNO = dr["A_PATERNO"].ToString(),
                A_MATERNO = dr["A_MATERNO"].ToString(),
                CORREO = dr["CORREO"].ToString()

            });




        }


        return Json(new { data = lmm }, JsonRequestBehavior.AllowGet);
    }

}
}

А вот и мой взгляд

<div style="width:90%; margin:0 auto;">

@using (Html.BeginForm("TestDataTable", "Test", FormMethod.Post))
{
    <br />
    <input type="text" id="run" name="run" required />
    <button type="button" id="boton">Click Me!</button>
    <input type="submit" name="asd" value="Buscar Mandatos" />
    <br />
    <br />

}


<table id="myTable">
    <thead>
        <tr>
            <th>Folio</th>
            <th>Nombres</th>
            <th>Apellido Paterno</th>
            <th>Apellido Materno</th>
            <th>Correo</th>

        </tr>
    </thead>
</table>
</div>
<style>
tr.even {
    background-color: #F5F5F5 !important;
}
</style>
 @* Load datatable css *@
<!--<link href="//cdn.datatables.net/1.10.9/css/jquery.dataTables.min.css" 
rel="stylesheet" />-->
<link href="~/Content/DataTable/jquery.dataTables.css" rel="stylesheet" />
@* Load datatable js *@
@section Scripts{
<!--<script src="//cdn.datatables.net/1.10.9/js/jquery.dataTables.min.js"> 
</script>-->
<script src="~/Scripts/DataTable/jquery.dataTables.min.js"></script>
<script>
    $(document).ready(function () {
        $('#myTable').DataTable({
            "ajax": {
                "url": "/Test/TestDataTable",
                "type": "GET",
                "datatype": "json"


            },
            "columns": [
                { "data": "FOLIO", "autoWidth": true },
                { "data": "NOMBRES", "autoWidth": true },
                { "data": "A_PATERNO", "autoWidth": true },
                { "data": "A_MATERNO", "autoWidth": true },
                { "data": "CORREO", "autoWidth": true }

            ]
        });
    });

</script>
}

Главное, что я хочу сделать, - это передать параметр методу TestDataTable (запустить) и отобразить данные в DataTable, в текущем состоянии я могу выполнить свою процедуру и получить все данные, которые я хочу, но после переноса данных он не возвращает представление с таблицей, он возвращает только простые данные.

Извините за ошибки и мой плохой английский.

Пожалуйста, помогите: (

1 Ответ

0 голосов
/ 06 ноября 2018

я использую веб-интерфейс, я отправляю свои данные вот так

    ajax: {
        url: _json,
        type: "GET"
    },

так в вашем _json есть url + параметры

/Test/TestDataTable?run=demo

-

я думаю, вам нужен ajax, вызывающий ваш контроллер

    public JsonResult TestDataTable(string run)
    {
        try
        {
            //code
        }
        catch (Exception ex)
        {

            return Json(ex.Message);
        }
    }

какой-то Ajax, как это.

          $.ajax({
               cache: !1,
               url: '@Url.Action("TestDataTable", "TestController")',
                async: !1,
                data: { run: demo.val() },
               success: function (e) { // data for datatables },
               error: function (e, c, t) { alert(e.responseText) }
           });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...