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

时间:2013-05-30 09:12:55

标签: javascript jquery gridview datatable datatables

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

我用谷歌搜索并使用sType": "numeric"来解决,但是当我使用这个时,我的整个工作停止了我的列位于9位置所以我设置aTragets 9

这是 JS FIDDLE

使用Javascript:

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

       });
  }); 

enter image description here

enter image description here

代码背后: 在Page_PreRender

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

在页面上载:

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

2 个答案:

答案 0 :(得分:2)

我认为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] }]

     });
}); 

<强>更新

问题出现在我的评论It clearly does not understand the numeric datatype of the column中。你的问题是你的内心...你也有文字。

查看工作小提琴http://jsfiddle.net/6Pxwy/1

答案 1 :(得分:1)

这就是我解决的问题:

使用项目模板的Gridview

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

代码:

$("#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_ID ').dataTable({
   "bJQueryUI": true,
   "sPaginationType": "full_numbers",
    "aoColumns": [{ "bSortable": false }, null, null, { "sType": "numeric" }, { "sType": "date" }, null, { "bSortable": false}]
     });