2

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

我用谷歌搜索并通过使用sType": "numeric" 将解决来知道,但是当我使用它时,我的整个工作都停止了,我的列位于 9 位置,所以我设置了aTragets9

这是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;
        }

在 pageLoad :

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

2 回答 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] }]

     });
}); 

更新

问题如我的评论所述It clearly does not understand the numeric datatype of the column。你的问题是在你的......你也有文字。

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

于 2013-05-30T09:25:24.617 回答
1

这就是我解决的方法:

带有项目模板的 Gridview

在 Item 模板中,它们可能是标签控件,因此它转换为 span,我们需要删除该 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}]
     });
于 2013-06-07T12:26:01.353 回答