У меня есть простая таблица DataTables, которая содержит столбцы даты. Я дал два значения для даты в моем наборе данных JSON, один для отображения и один специально разработанный, чтобы DataTables мог его сортировать. Мое веб-приложение позволяет пользователям выбирать кучу разных форматов дат, поэтому оно должно быть гибким.
Это мои данные JSON, которые DataTables получает с веб-сервера через sAjaxSource
.
{
Reports : [
{ Date: { Sort = "20101131133000", Display : "11/31/2010 1:30 PM" } },
{ Date: { Sort = "20100912120000", Display : "1200 EST 2010-09-12" } },
]
}
Легко подсказать DataTables для сортировки на основе свойства Date.SortValue
и сделать свойство Display
видимым для пользователя с помощью fnRender()
. Так что это доходит до моей цели.
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;
}
}
]
};
Здесь моя проблема. Я хочу разрешить пользователю вводить фильтр (используя встроенный вход фильтра, который предоставляет DataTables) на основе отображаемого значения, но они не могут.
Например. Если пользователь ввел "EST", они получат нулевые результаты, потому что фильтры datatables на основе значения, указанного в mDataProp
, не основаны на значении, возвращаемом из fnRender
.
Может ли кто-нибудь помочь мне разобраться, как сортировать и фильтровать столбец даты? Спасибо.