我正在以动态方式创建数据表,值得一提的是,我正在使用PHP(Laravel),出于非常特殊的需求,我将以模态显示数据表。
问题是由于我要使用本机搜索选项,因此我正在使用DataTables Plugin。
我不相信PHP的DataTable,我相信它使用AJAX,向您展示了我的工作方式:
$.ajax
({
url:'../../ingresoarticulos/buscarIngresosTerminadosDesechados',
type:'get',
dataType:'json',
beforeSend: function () {
$cargando.show();
},
complete: function () {
$cargando.hide();
},
success: function (data)
{
var $resultado=data.ingresosTerminadosDesechados;
var $filas='';
if($.isEmptyObject($resultado))
{
$filas += "<tr>";
$filas += "<td colspan='7'><h4 style='text-align:
center'>"+$txt_finished_discarded_items+"</h4></td>";
$filas += "</tr>";
}
$.each($resultado,function (index,valor)
{
var $id = "<td id='id'>"+valor.id+"</td>";
var $numeroSolicitud = "<td id='solicitud_id' >"+valor.id_solicitud+"</td>";
var $numeroSerie = "<td id='numero_serie'>"+valor.serie_articulo+"</td>";
var $numeroSku = "<td id='numero_sku'>"+valor.sku_articulo+"</td>";
var $totalServicio = "<td id='total_servicio'>"+parseFloat(valor.total_ingreso).toFixed(2)+"</td>";
var $agregarServicio="<td class='click'><input type='button' id='agregar_servicio' class='btn-sm btn-info col-lg-12 col-xs-12 col-sm-12 col-md-12 incluir' value="+$txt_btn_add+"></td>";
if(valor.estatus_ingreso==="Terminado")
{
var $estadoArticulo = "<td id='estado_articulo' style='color: #3d8b3d;font-weight: bold'>"+$txt_status_article_finished+"</td>";
var $pesoArticulo = "<td id='peso_articulo'>"+parseFloat(valor.peso_articulo).toFixed(2)+"</td>";
}
else
if(valor.estatus_ingreso==="Desechado")
{
var $estadoArticulo = "<td id='estado_articulo' style='color: #b0141a;font-weight: bold'>"+$txt_status_article_discarded+"</td>";
var $pesoArticulo = "<td id='peso_articulo'>"+parseFloat(0.00).toFixed(2)+"</td>";
}
$filas += "<tr data-status='"+valor.estatus_ingreso+"'>";
$filas += $id;
$filas += $numeroSolicitud;
$filas += $numeroSerie;
$filas += $numeroSku;
$filas += $pesoArticulo;
$filas += $totalServicio;
$filas += $estadoArticulo;
$filas += $agregarServicio;
$filas += "</tr>";
});
$("#tablemodalarticulostd tbody").html($filas);
一切正常,当我通过DataTable插入时出现问题。
$solicitudEnvio.DataTable({
// "paging": false,
// "info": false,
//
"order": [[0, "desc"]],
"language": {
"search": "Buscar: ",
"searchPlaceholder": "Escriba los datos que desea buscar",
"sProcessing": "Procesando...",
"sLengthMenu": "Mostrar _MENU_ registros",
"sZeroRecords": "No se encontraron resultados",
"sEmptyTable": "Ningún dato disponible en esta tabla",
"sInfo": "Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros",
"sInfoEmpty": "Mostrando registros del 0 al 0 de un total de 0 registros",
"sInfoFiltered": "(filtrado de un total de _MAX_ registros)",
"sInfoPostFix": "",
"sUrl": "",
"sInfoThousands": ",",
"sLoadingRecords": "Cargando...",
"oPaginate": {
"sFirst": "Primero",
"sLast": "Último",
"sNext": "Siguiente",
"sPrevious": "Anterior"
}
}
});
该窗口显示了插入的特性,但是不起作用。
我怎么知道?好吧...它不过滤,不计算记录,也不显示页面,我已经阅读了很多有关此案的信息,但是我确实没有弄清楚它的工作方式。
答案 0 :(得分:0)
之所以发生这种情况,是因为您正在手动创建表,而dataTable却不知道这一点。而是使用dataTable的ajax option。
您的DataTable初始化应类似于以下内容。
$solicitudEnvio.DataTable({
"order": [[0, "desc"]],
"language": {
"search": "Buscar: ",
"searchPlaceholder": "Escriba los datos que desea buscar",
"sProcessing": "Procesando...",
"sLengthMenu": "Mostrar _MENU_ registros",
"sZeroRecords": "No se encontraron resultados",
"sEmptyTable": "Ningún dato disponible en esta tabla",
"sInfo": "Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros",
"sInfoEmpty": "Mostrando registros del 0 al 0 de un total de 0 registros",
"sInfoFiltered": "(filtrado de un total de _MAX_ registros)",
"sInfoPostFix": "",
"sUrl": "",
"sInfoThousands": ",",
"sLoadingRecords": "Cargando...",
"oPaginate": {
"sFirst": "Primero",
"sLast": "Último",
"sNext": "Siguiente",
"sPrevious": "Anterior"
}
},
"ajax": {
url:'../../ingresoarticulos/buscarIngresosTerminadosDesechados',
type:'get',
dataType:'json',
beforeSend: function () {
$cargando.show();
},
complete: function () {
$cargando.hide();
},
},
"columnDefs": [
{
target: 4,
render: function (d) {
if (r.estatus_ingreso==="Terminado") {
return parseFloat(d).toFixed(2);
} else if (r.estatus_ingreso==="Desechado") {
return parseFloat(0.00).toFixed(2);
}
},
},
{
target: 5,
render: function (d) {
return parseFloat(d).toFixed(2)
},
},
{
target: 6,
render: function (d, t, r) {
if (r.estatus_ingreso==="Terminado") {
return $txt_status_article_finished;
} else if (r.estatus_ingreso==="Desechado") {
return $txt_status_article_discarded;
}
},
},
{
target: 7,
render: function (d) {
return "<input type='button' id='agregar_servicio' class='btn-sm btn-info col-lg-12 col-xs-12 col-sm-12 col-md-12 incluir' value=" + d + ">"
},
}
],
});