whole_func_string: function (filters) {
          var p = {}, i, f, root, dataPrefix, key, tmp,
              len = filters.length;
  
          if (!this.encode){
              for (i = 0; i < len; i++) {
                  f = filters[i];
                  root = [this.paramPrefix, '[', i, ']'].join('');
                  p[root + '[field]'] = f.field;
  
                  dataPrefix = root + '[data]';
                  for (key in f.data) {
                      p[[dataPrefix, '[', key, ']'].join('')] = f.data[key];
                  }
              }
          } else {
              tmp = [];
              for (i = 0; i < len; i++) {
                  f = filters[i];
                  tmp.push(Ext.apply(
                      {},
                      {field: f.field},
                      f.data
                  ));
              }
              // only build if there is active filter
              if (tmp.length > 0){
                  p[this.paramPrefix] = Ext.JSON.encode(tmp);
              }
          }
          return p;
      }
func_code_string: function (filters) {
          var p = {}, i, f, root, dataPrefix, key, tmp,
              len = filters.length;
  
          if (!this.encode){
              for (i = 0; i < len; i++) {
                  f = filters[i];
                  root = [this.paramPrefix, '[', i, ']'].join('');
                  p[root + '[field]'] = f.field;
  
                  dataPrefix = root + '[data]';
                  for (key in f.data) {
                      p[[dataPrefix, '[', key, ']'].join('')] = f.data[key];
                  }
              }
          } else {
              tmp = [];
              for (i = 0; i < len; i++) {
                  f = filters[i];
                  tmp.push(Ext.apply(
                      {},
                      {field: f.field},
                      f.data
                  ));
              }
              // only build if there is active filter
              if (tmp.length > 0){
                  p[this.paramPrefix] = Ext.JSON.encode(tmp);
              }
          }
          return p;
      }
func_documentation_string: Function to take the active filters data and build it into a query.
  The format of the query depends on the {@link #encode} configuration:
  
  - `false` (Default) :
  Flatten into query string of the form (assuming <code>{@link #paramPrefix}='filters'</code>:
  
  filters[0][field]="someDataIndex"&
  filters[0][data][comparison]="someValue1"&
  filters[0][data][type]="someValue2"&
  filters[0][data][value]="someValue3"&
  
  
  - `true` :
  JSON encode the filter data
  
  {filters:[{"field":"someDataIndex","comparison":"someValue1","type":"someValue2","value":"someValue3"}]}
  
  Override this method to customize the format of the filter query for remote requests.
  
  @param {Array} filters A collection of objects representing active filters and their configuration.
  Each element will take the form of {field: dataIndex, data: filterConf}. dataIndex is not assured
  to be unique as any one filter may be a composite of more basic filters for the same dataIndex.
  
  @return {Object} Query keys and values