
Error al llenar tabla con datatable jquery ajax ASP.NET
Publicado por Fernando Díaz (2 intervenciones) el 08/05/2024 05:36:52
Estoy intentando llenar una tabla html a través de un datatable el cual trae la información de una base de datos. Dentro de los parámetros del ajax para traer la info de la base de datos está un dato que me permite solo extraer los registros con ese parámetro, pero al ejecutarlo mediante el clic de un botón buscar me saca un error donde dice que el parámetro es nulo, pero el parámetro es el valor seleccionado en un combo que lleno al cargar la página. Este es el código que realizo. Inicialmente el de la tabla y posteriormente el script
La tabla:
Script:
El mensaje de error que se da es:
DataTables warning: table id=tabla - Ajax error.
El error que se muestra al final es:
El diccionario de parámetros contiene una entrada NULL para el parámetro 'uniId' del tipo que no acepta valores NULL 'System.Int32' del método 'System.Web.Mvc.JsonResult ListarIntegrantesUnidadFamiliar(Int32)' en 'CapaPresentacion.Controllers.MantenedorController'. Un parámetro opcional debe ser un tipo de referencia, un tipo que acepte valores NULL o debe declararse como parámetro opcional.
Nombre del parámetro: parameters
Soy relativamente nuevo en programación web y agradezco la ayuda que puedan prestarme.
La tabla:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<div class="card">
<div class="card-body">
<h5 for="txtLista" class="form-label">Integrantes</h5>
<table id="tabla" class="display cell-border" style="width: 100%">
<thead>
<tr>
<th>Nombre</th>
<th>Fecha nacimiento</th>
<th>Edad</th>
<th>Sexo</th>
<th>Tipo documento</th>
<th>Numero documento</th>
<th>Editar/Eliminar</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
Script:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<script>
var tabladata;
$(document).ready(function () {
$("<option>").attr({ "value": "0", "disabled": "disabled", "selected": "true" }).text("Seleccionar").appendTo("#cbbunidad");
jQuery.ajax({
url: "@Url.Action("ListarUnidad", "Mantenedor")",
type: "GET",
datatype: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
if (data.data != null) {
$.each(data.data, function (index, item) {
$("<option>").attr({"value":item.uniId}).text(item.uniNombre).appendTo("#cbbunidad");
})
}
},
error: function (error) {
console.log(error)
}
});
})
$("#btnBuscar").on("click", function () {
tabladata = $("#tabla").DataTable({
destroy: true,
responsive: true,
ordering: false,
"ajax": {
url: "@Url.Action("ListarIntegrantesUnidad", "Mantenedor")",
type: "POST",
datatype: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ idUnidad: $("#cbbunidad option:selected").val() })
},
"columns": [
{ "data": "intNombre" },
{ "data": "intFechaNacimiento" },
{ "data": "intEdad" },
{ "data": "intSexo" },
{ "data": "intTipoDocumento" },
{ "data": "intNumeroDocumento" },
{
"defaultContent": '<button type="button" class="btn btn-primary btn-sm btn-editar"><i class="fas fa-pen"></i></button>' +
'<button type="button" class="btn btn-danger btn-sm btn-retirar ms-2"><i class="fas fa-trash"></i></button>',
"orderable": false,
"searchable": false,
"width": "90px"
}
],
"language": {
"url": "https://cdn.datatables.net/plug-ins/2.0.2/i18n/es-ES.json",
}
})
})
</script>
El mensaje de error que se da es:
DataTables warning: table id=tabla - Ajax error.
El error que se muestra al final es:
El diccionario de parámetros contiene una entrada NULL para el parámetro 'uniId' del tipo que no acepta valores NULL 'System.Int32' del método 'System.Web.Mvc.JsonResult ListarIntegrantesUnidadFamiliar(Int32)' en 'CapaPresentacion.Controllers.MantenedorController'. Un parámetro opcional debe ser un tipo de referencia, un tipo que acepte valores NULL o debe declararse como parámetro opcional.
Nombre del parámetro: parameters
Soy relativamente nuevo en programación web y agradezco la ayuda que puedan prestarme.
Valora esta pregunta


0