我在 MVC3 c# 中实现了一个数据表。在本地开发机器中一切正常,包括对 DateTime 列的排序。
但是,当我将其上传到服务器并访问网页时,数据表排序对 DateTime 列的排序不正确。
进一步测试,我发现不同的浏览器(Chrome 和 IE9)会产生不同的结果。
使用http://debug.datatables.net/上提供的 DataTables 调试,我发现数据类型显示为字符串类型而不是日期类型。当我使用 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>