jquery dataTable filter/search not working

22,163

I'm not sure which version of Datatable are you using but I hope this helps. I should to say that I didn't test it, so the example is just the main idea where I think the problem is.

On your JS code you can indicate the source from you want to retrieve the data on the table, in this case I'm using C# so I use "Url.Action". You should to indicate that in sAjaxSource. Example is something like this...

 var oTable;
        $(function() {
            oTable = $('#agentDetails')
                .dataTable({
                "bServerSide": true,
                "bProcessing": true,
                "bSort": true,
                "sAjaxSource": "@Url.Action("Method")",
                "sPaginationType": "full_numbers",
                "bSearchable":true,
                "bFilter": true,
                "sDom": '<"top"fip>',
                "bInfo": true,
                "bLengthChange": false,
                "aoColumns": [
                    { "mData": "UserId" },
                    { "mData": "ParentId", "width": "22%", "bSortable": true},
                    { "mData": "Country", "width": "35%" },

                ],

        });

On aoColumns "mData" means the way than you al mapping the date that are you getting of your method so you should exactly the name of the var that contains that value in your model. After that you don't need to use a for clause and the datatable should to be able to handled the searching and filter for it self.

Example

  <table id="agentDetails" >
                        <thead>
                            <tr>
                                <th>User Id</th>
                                <th>Parent Id</th>
                                <th>Country</th>

                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td></td>
                                <td></td>
                                <td></td>

                            </tr>
                        </tbody>
 </table>
Share:
22,163
Khusboo
Author by

Khusboo

Updated on June 11, 2020

Comments

  • Khusboo
    Khusboo almost 4 years

    I am new to jquery and I have used the jqueryData Table, I am facing problem in during search,
    Search is working for first two columns (ex., if I search using 'QE5855' or 3453457 its working fine), But its not searching for the third column (ex., if I enter 'United' or 'united states' table is not getting sorted) , Please help me.

    <table id="agentDetails">
        <tr style="">
            <th width="22%">User Id</th>
            <th width="20%">Parent Id</th>
            <th width="35%">Country</th>
        </tr>
        <%
            for(UserDataModel getEachEmpDetails:phoneIdSiteMappingList){
        %>
            <tr>
                <td> <div><%=getEachEmpDetails.getUserUid %> </div> </td> // data is like 'QE5855'
                <td><div><%=getEachEmpDetails.getParentUid %> </div> </td> //data is like '3453457'
                <td><div><%=getEachEmpDetails.getCountry %> </div> </td>// data is like 'United States'
            </tr>   
        <%
            }
        <%
    

    <script type="text/javascript">
        $( document ).ready(function() {
            var table = $("#agentDetails").DataTable({
                 "bSort": false, 
                "iDisplayLength": 10 ,
                "sPaginationType": "full_numbers",
                "bSearchable":true,
                "bPaginate": true,
                    "bFilter": true,
                     "sDom": '<"top"fip>',
                     "bStateSave": false,
                    "oLanguage": {
                        "sInfo": "Showing _START_ to _END_ of _TOTAL_ messages",
                        "sInfoEmpty": "Showing 0 to 0 of 0 messages",
                        "sEmptyTable": " ",
                        "sSearch": "&nbsp&nbsp&nbsp",
                        "oPaginate": {
                            "sPrevious": "<",
                            "sNext": ">",
                            "sFirst":"",
                            "sLast":""
                        },
                        dom: 'T<"clear">lfrtip',
                        tableTools: {
                            "sRowSelect": "single"
                        }
                    }
            }); 
    
        });
    <script>
    
  • Khusboo
    Khusboo almost 8 years
    Thanks for hopeful response, i will look into this, and build the table from Ajax...,