基于StartsWith Not Contains的JQuery DataTables搜索

时间:2013-01-24 09:12:07

标签: jquery asp.net-mvc-3 datatable

我正在使用Jquery DataTables处理MVC3。每个网格都包含搜索功能,它通过匹配输入字符(例如,使用包含)来搜索内容。但我需要的结果应该是使用StartsWith。

我需要这样的东西,

网格记录

1. Pipefitting Annotated instructor guide level 1 CD-ROM
2. Adobe Photoshop CS4 for photographers A professional image editors

如果我输入字符'a',结果应该带有第二行(通过搜索字符串中单词的起始字符)。或者如果我输入'g',那么结果应该是第一个记录。

我搜索了很多,但我找不到符合我要求的东西。请建议我怎么做。

查看代码

    $(document).ready(function () {
    $('#CollectionTable').dataTable({
      "bJQueryUI": true,
      "sPaginationType": "full_numbers"}).makeEditable({
            "aoColumns": [
                null, null
                ]
        });
    });

2 个答案:

答案 0 :(得分:0)

fnFilter允许您使用正则表达式过滤表:

$(document).ready(function() {
  var oTable = $('#example').dataTable();

  // Sometime later - filter...
  oTable.fnFilter( '^' + yourTerm, null, true, true, true, true);
} );

完整参考:http://www.datatables.net/ref

答案 1 :(得分:0)

使用数据表1.10.9,搜索以您将输入的参数开头的值非常简单。

我自己做了一些研究,但是datatables API有内置的列过滤器来做你想要的。

var table = $('#table_id').DataTable();

        $('#name').on( 'keyup', function () {

            table
                .columns( 0 ) // 0 based column
                .search( "^"+this.value, true, true, true )
                .draw();

        } );

table是数据表对象

和#name是我传递参数的输入框。

您可以定义您感兴趣的列,然后在搜索参数时传入正则表达式查询。

您可以在官方文档here

中找到上述示例