jQuery Datatables 只搜索一列

12

我使用jQuery datatables和ColdFusion。我尝试拥有一个搜索字段,该字段仅搜索第一列(项目ID),因此当您开始输入项目ID时,它将仅搜索表格中的项目ID部分,而不是所有列,因为到期日期和数量也会有类似的数字。

jQuery

var oTable = $('#processing').DataTable( {
$('#ItemID').on( 'keyup', function () {
      oTable.search($(this).val()).draw() ;
    });
HTML - CF
<div class="col-xs-8">
     <label for="ItemID">ITEM ID</label>
         <div class="input-group">
             <input type="text" class="form-control" name="ItemID" id="ItemID" maxlength="15"> <span class="input-group-btn">
             <button type="button" class="btn btn-default" id="Search">SEARCH</button>
        </span>

         </div>
</div>

    <table id="processing" class="table table-hover">
             <thead>
                    <th><b>ITEM ID</b></th>
                    <th><b>DUE DATE</b></th>
                    <th><b>STATUS</b></th>
                    <th><b>QTY</b></th>
            </thead>
  <tbody>
    <cfoutput query="processTable">
       <cfif #Date_Complete# EQ "">
        <tr>
           <td class="LAlign">#id#</td>
           <td>#dateFormat(processTable.Date_Due, 'mm/dd/yyyy')#</td>
           <td>PROCESSING</td>
           <td>#Item_Count#</td>
        </tr>
     </cfif>
   </cfoutput>
 </tbody>
</table>

cfc

<cffunction name="displayTable" access="public" returntype="query">
    <cfset var processTable = ''>
    <cfquery name="processTable">
        SELECT id, Date_Due, Date_Complete, Item_Count
        FROM dbo.Dealer_Track_Work      
    </cfquery>
    <cfreturn processTable>
</cffunction>

我尝试过的方法(以及许多其他组合):

"aoColumnDefs": [
            { "bSearchable": true},
            { "bSearchable": false},
            { "bSearchable": false},
            { "bSearchable": false}
        ],

基本上我只想搜索ID列。任何帮助都将不胜感激!

1个回答

41
你可以使用外部搜索控件和 column().search() API 方法。
$('#ItemID').on('keyup change', function () {
   oTable.column(0).search($(this).val()).draw();
});

然而,通过使用columnDefs.searchable选项并利用内部搜索控件,指示DataTables使除第一列之外的所有列都不可搜索会更加简单。

var oTable = $('#processing').DataTable({
    "columnDefs": [
        { "targets": [1,2,3], "searchable": false }
    ]
});

有没有办法重置这个过滤器? - CGR
非常简单的 oTable.column(0).search('').draw(); - CGR

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