我在MVC3 c#中實現了一個數據表。所有在本地開發機器上正常工作,包括排序DateTime列。MVC jQuery數據表日期排序問題
但是,當我將其上載到服務器並訪問網頁時,數據表排序對於DateTime列沒有正確排序。
進一步測試,我發現不同的瀏覽器(Chrome和IE9)產生不同的結果。
使用DataTables調試,可在http://debug.datatables.net/,我發現數據類型顯示爲字符串類型而不是日期類型。雖然我使用vs2010在本地開發環境上運行,但調試結果顯示爲日期類型,可以進行正確排序。
這很奇怪,因爲我上傳了相同的文件副本到服務器,但結果是不一樣的。
Any1遇到此問題b4?
以下是我的代碼:
<script type="text/javascript" src="@Url.Content("./../Content/Scripts/jquery-1.7.2.min.js")" ></script>
<script type="text/javascript" src="@Url.Content("./../Content/Scripts/jquery.dataTables.min.js")" ></script>
<script type="text/javascript" src="@Url.Content("./../Content/Scripts/jquery.jeditable.js")" ></script>
<script type="text/javascript" src="@Url.Content("./../Content/Scripts/jquery-ui.js")" ></script>
<script type="text/javascript" src="@Url.Content("./../Content/Scripts/jquery.validate.js")" ></script>
<script type="text/javascript" src="@Url.Content("./../Content/Scripts/jquery.DataTables.editable.js")" ></script>
<script language="JavaScript" type="text/javascript">
$(document).ready(function() {
jQuery.fn.dataTableExt.oSort['us_date-asc'] = function (a, b) {
var x = new Date(a),
y = new Date(b);
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
};
jQuery.fn.dataTableExt.oSort['us_date-desc'] = function (a, b) {
var x = new Date(a),
y = new Date(b);
return ((x < y) ? 1 : ((x > y) ? -1 : 0));
};
$('#myDataTable').dataTable({ "bJQueryUI": true,
"sPaginationType": "full_numbers",
// aaSorting defined the column to be sorted
"aaSorting": [[2, "desc"]]
}).makeEditable({ sUpdateURL: "UpdateData",
"aoColumns":
[
numeric,
string,
{ "sType": "us_date"},
date,
string,
string
]
});
})
</script>