Jquery DataTable排序数字列不能正常工作

3
在我的Asp.net应用程序中,我有一个Gridview控件,并在代码后台上绑定它。
在客户端,我使用Jquery DataTable版本1.9.4进行更好的排序、搜索功能,但我遇到一个问题,数字值不能正确排序。
我通过谷歌了解到,使用sType": "numeric"可以解决这个问题,但当我使用它时,我的整个工作都停止了,因为我的列在第9个位置,所以我设置了aTargets 9。
这是JS FIDDLE的链接: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();

你有任何用逗号分隔的数字值吗?例如1,2? - MaVRoSCy
@MaVRoSCy:不仅是十进制值,例如`10.5、13.5'等等,但它们之间没有空格或逗号。我尝试了你的解决方案,但问题仍未解决。 - Satinder singh
你能否把表格数据粘贴到 JSFiddle 上?http://jsfiddle.net/ - MaVRoSCy
2个回答

3

我认为您需要使用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] }]

     });
}); 

更新

问题如我评论中所述它显然不理解列的数值数据类型。你的问题是在你的...里面也有文本。

请参见一个可工作的 fiddle http://jsfiddle.net/6Pxwy/1


谢谢您的回复,但排序仍然不正确。现在使用 "aaSorting": [[ 9, "asc"]],其他功能正常运行。 - Satinder singh
我更新了我的问题,没有收到任何错误,但是排序不正确,正如您可以看到的那样,billinglosthrs列的两个图像都是asc/desc顺序。 - Satinder singh
是的,那个“点”(.)代表他们的十进制值,那么我该怎么解决这个问题呢? - Satinder singh
我自己没有使用过,但你可以在这里找到答案:http://datatables.net/release-datatables/examples/plug-ins/sorting_sType.html - MaVRoSCy
1
谢谢,我解决了。之前我在GridView中使用了一个带标签的Item模板,所以它被转换成了“span”。现在我使用了BoundFields,一切都正常工作了。 - Satinder singh
显示剩余6条评论

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:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接