Jquery DataTable排序数值列无法正常工作

在我的Asp.net应用程序中,我有一个Gridview控件并将其绑定在代码后面。
在客户端,我使用Jquery DataTable version 1.9.4以获得更好的排序,搜索function,这里我有一个问题数值不能正确排序。

我用sType": "numeric"搜索并通过使用sType": "numeric"sType": "numeric"将解决,但当我使用这个我的整个工作stoped我的列是在9位置所以我设置了aTragets 9

这是JS FIDDLE

使用Javascript:

 $(document).ready(function () { $('#ctl00_ContentPlaceHolder1_GridView3').dataTable({ "bJQueryUI": true, "sPaginationType": "full_numbers" // "aoColumnDefs": [{ "sType": "numeric", "aTargets": [9] }] }); }); 

在此处输入图像描述

在此处输入图像描述

代码背后:在Page_PreRender上

 if (GridView3.Rows.Count > 0) { GridView3.UseAccessibleHeader = true; GridView3.HeaderRow.TableSection = TableRowSection.TableHeader; } 

在页面上:

 GridView3.DataSource = sortedDT; GridView3.DataBind(); 

我认为aaSorting就是你必须使用的东西

 $(document).ready(function () { $('#ctl00_ContentPlaceHolder1_GridView3').dataTable({ "aaSorting": [[ 9, "asc"]], /*row count starts from 0 in datatables*/ "bJQueryUI": true, "sPaginationType": "full_numbers" // "aoColumnDefs": [{ "sType": "numeric", "aTargets": [9] }] }); }); 

UPDATE

问题是我的评论中所述It clearly does not understand the numeric datatype of the column 。 你的问题是你的内心……你也有文字。

看到一个工作小提琴http://jsfiddle.net/6Pxwy/1

这就是我解决的问题:

带项目模板的Gridview

在Item模板中,它们可能是标签控件,因此它转换为span,我们需要使用.contents().unwrap();删除该span标签即html标签.contents().unwrap();

码:

 $("#Gridview_ID span").contents().unwrap(); $('#Gridview_ID ').dataTable({ "bJQueryUI": true, "sPaginationType": "full_numbers", "aoColumns": [{ "bSortable": false }, null, null, { "sType": "numeric" }, { "sType": "date" }, null, { "bSortable": false}] }); 

绑定字段的Gridview:

 $('#Gridview_ID ').dataTable({ "bJQueryUI": true, "sPaginationType": "full_numbers", "aoColumns": [{ "bSortable": false }, null, null, { "sType": "numeric" }, { "sType": "date" }, null, { "bSortable": false}] }); 
Interesting Posts