EasyUI Forum
September 14, 2025, 03:13:51 AM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News:
 
  Home Help Search Login Register  
  Show Posts
Pages: [1]
1  General Category / EasyUI for jQuery / Re: how to filter datagrid by all columns from one search field on: June 18, 2014, 11:01:47 AM
The local searching is similar to this tutorial. All you need to do is to filter the 'data' and call 'loadData' method to render the new rows. Please see the 'doSearch' function to learn how to achieve this functionality.
Code:
function doSearch(q){
    var rows = [];
    $.map(data, function(row){
        for(var p in row){
            var v = row[p];
            if (String(v).indexOf(q) >= 0){
                rows.push(row);
                break;
            }
        }
    });
    $('#dg').datagrid('loadData', rows);
}

Great, thanks! This is works as expected. I just changed the string checking to be more flexible:

                 function doSearch(q){
         var rows = [];
         
         $.map(data, function(row){
            for(var p in row){
               var v = row[p];
               var regExp = new RegExp(q, 'i'); // i - makes the search case-insensitive.
               if(regExp.test(String(v))) {

                  rows.push(row);
                  break;
               }
            }
         });
         $('#dg').datagrid('loadData', rows);
      }

Thanks again.
2  General Category / EasyUI for jQuery / Re: how to filter datagrid by all columns from one search field on: June 18, 2014, 07:03:59 AM
Here is the tutorial shows how to add search functionality.
http://www.jeasyui.com/tutorial/datagrid/datagrid24.php

Thank you for replay. However, this example requires re-loading all data from the server side. Is it possible to do it with local filtering?  Reloading from the server side could be time consuming especially when using keyup event ?
3  General Category / EasyUI for jQuery / how to filter datagrid by all columns from one search field on: June 17, 2014, 01:08:36 PM
Hi,

I am trying to create one field (searchbox) to filter whole datagrid columns
Here is the code:
...

<script>
var data = [
              {"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"},
           {"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"},
           {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"},
           {"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"N","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"}
        ];

$(document).ready(function(){
                  
          $('#fldSearch').searchbox('textbox').keyup(function() {
            searchTable('dg',$(this).val());
         });

       });
      
      function searchTable(tblID, inputVal)   {
         
         var table = $('#' + tblID);
         table.find('tr').each(function(index, row)
         {
            var allCells = $(row).find('td');
            if(allCells.length > 0)
            {
               var found = false;
               allCells.each(function(index, td)
               {
                  var regExp = new RegExp(inputVal, 'i'); // i - makes the search case-insensitive.
                  if(regExp.test($(td).text()))
                  {
                     found = true;
                     return false;
                  }
               });
               if(found == true)$(row).show();else $(row).hide();
            }
         });
      } // end searchTable
</script>

<table id="dg" title="DataGrid" style="width:700px;height:250px" data-options="
            singleSelect:true,
            data:data,
            toolbar:'#tb',       
         ">
      <thead>
         <tr>
            <th data-options="field:'itemid',width:80">Item ID</th>
            <th data-options="field:'productid',width:100">Product</th>
            <th data-options="field:'listprice',width:80,align:'right'">List Price</th>
            <th data-options="field:'unitcost',width:80,align:'right'">Unit Cost</th>
            <th data-options="field:'attr1',width:250">Attribute</th>
            <th data-options="field:'status',width:60,align:'center'">Status</th>
         </tr>
      </thead>
   </table>
   <div id='tb' style='padding:5px 8px;'>
            Quick search: <INPUT id='fldSearch' class='easyui-searchbox' style='width:250px'
                                         data-options="prompt:'Type search criteria.'" />
          </div>


For some reason my searchTable function cannot hide <tr> rows in the datagrid..??
I've tried to use datagrid-filter.js option, but in this case filter added to each column, which I don't need.

Could you please help me with the solution?

Thanks in advance.
4  General Category / EasyUI for jQuery / changing datagrid column title on: June 12, 2014, 07:33:58 AM
Hi , there is an option to retrieve the datagrid column title with getColumnOption, but how to change/update that propertie dinamicaly?

For example:
var col = $('#dg').datagrid('getColumnOption', field);
col.title = 'New Title'; - this does not work.

Thanks in advance.

Pages: [1]
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!