我有一個簡單的DataTables網格,其中包含日期列。我在JSON數據集中爲日期提供了兩個值,一個用於顯示,另一個專門設計,以便DataTable可以對其進行排序。我的Web應用程序允許用戶選擇一堆不同的日期格式,因此它需要靈活。如何讓jQuery DataTables對隱藏值進行排序,但搜索顯示值?
這是我的JSON數據,DataTables通過sAjaxSource
從Web服務器獲取。
{
Reports : [
{ Date: { Sort = "20101131133000", Display : "11/31/2010 1:30 PM" } },
{ Date: { Sort = "20100912120000", Display : "1200 EST 2010-09-12" } },
]
}
這是很容易告訴數據表基礎上,Date.SortValue
屬性進行排序,並通過使用fnRender()
使Display
屬性對用戶可見。所以這使我獲得了一半的目標。
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」,則他們將得到零結果,因爲數據表根據mDataProp
中指定的值進行過濾,而不基於從fnRender
返回的值。
任何人都可以幫我弄清楚如何排序和篩選日期列?謝謝。
自從更新數據表後,此問題的正確答案已更改。我不確定在改變接受的答案和更新答案方面,SO政策是什麼,但其中一個或另一個可能會得心應手? –
我很樂意改變接受的答案。我不再使用DataTable,你能告訴哪一個更好嗎? – jessegavin
CW Spear的回答標有'13年11月5日在7:12'似乎是正確的,併爲我工作。 –