Tengo una grilla DataTables simple que contiene columnas de fecha. He proporcionado dos valores para la fecha en mi conjunto de datos JSON, uno para la pantalla y uno específicamente diseñado para que DataTables pueda ordenarlo. Mi aplicación web permite a los usuarios elegir varios formatos de fecha diferentes, por lo que debe ser flexible.¿Cómo puedo obtener jQuery DataTables para ordenar el valor oculto, pero buscar en el valor mostrado?
Estos son mis datos JSON de los que obtiene DataTables desde el servidor web a través del sAjaxSource
.
{
Reports : [
{ Date: { Sort = "20101131133000", Display : "11/31/2010 1:30 PM" } },
{ Date: { Sort = "20100912120000", Display : "1200 EST 2010-09-12" } },
]
}
Es fácil de decir para ordenar tablas de datos basado en la propiedad Date.SortValue
y para hacer que la propiedad Display
visible para el usuario mediante el uso de fnRender()
. Entonces esto me lleva a la mitad de mi objetivo.
var dataTableConfig = {
sAjaxSource: "/getreports",
sAjaxDataProp: "Reports",
aoColumns: [
{ mDataProp: "User" },
{ mDataProp: "Date.Sort",
bSortable: true,
sName: "Date",
bUseRendered: false,
fnRender: function (oObj) {
return oObj.aData[oObj.oSettings.aoColumns[oObj.iDataColumn].sName].Display;
}
}
]
};
Aquí es mi problema. Quiero permitir que el usuario ingrese un filtro (usando la entrada de filtro incorporada que proporciona DataTables) basado en el valor mostrado, pero no puede.
Por ejemplo. Si un usuario ingresaba "EST", obtendría cero resultados porque los filtros de tablas de datos basados en el valor especificado en mDataProp
no se basan en el valor devuelto por fnRender
.
¿Alguien me puede ayudar a encontrar la manera de ordenar Y filtrar una columna de fecha? Gracias.
La respuesta correcta a esta pregunta ha cambiado desde datatables se ha actualizado. No estoy seguro de cuál es la política de SO para cambiar la respuesta aceptada versus obtener la respuesta actualizada, pero tal vez sea útil una u otra. –
Me complace cambiar la respuesta aceptada. Ya no uso DataTables, ¿pueden aconsejarme cuál es mejor? – jessegavin
La respuesta de CW Spear marcada como 'Nov 5 '13 a las 7: 12' parece ser correcta, y funcionó para mí. –