Start Building Professional
Web Apps Today


 
Categories Question details Back To List
Question  posted by Den on Feb 01, 2009 23:37
open dhtmlx forum
How to do the automatic choice of value at sorting?

Hello.
It is necessary to me, that at page loading my table has been sorted by the name "eurusd".
I.e. that value in the dropping out menu of sorting in 3 column - "EURUSD" was automatically exposed.
I changed a code in a file dhtmlxgrid_filter.js, but it has turned out nothing! = (
Was so:
dhtmlXGridObject.prototype.collectValues=function(column){if (this.isTreeGrid()) return this.collectTreeValues(column);
this.dma(true)
this._build_m_order();
column=this._m_order?this._m_order[column]:column;var c={};
var f=[];var col=this._f_rowsBuffer||this.rowsBuffer;
for (var i=0;i<col.length;i++){var val=this._get_cell_value(col[i],column);
if (val && (!col[i]._childIndexes || col[i]._childIndexes[column]!=col[i]._childIndexes[column-1])) c[val]=true};
this.dma(false)
var vals=this.combos[column];for (d in c)if (c[d]===true)f.push(vals?(vals.get(d)||d):d);return f.sort();}

Became so:
dhtmlXGridObject.prototype.collectValues=function(column){if (this.isTreeGrid()) return this.collectTreeValues(column);
this.dma(true)
this._build_m_order();
column=this._m_order?this._m_order[column]:column;var c={};
var f=[];var col=this._f_rowsBuffer||this.rowsBuffer;
for (var i=0;i<col.length;i++){var val=this._get_cell_value(col[i],column);
if (val && (!col[i]._childIndexes || col[i]._childIndexes[column]!=col[i]._childIndexes[column-1])) c[val]=true};
this.dma(false)
var vals=this.combos[column];for (d in c)if (c[d]===true)f.push(vals?(vals.get(d)||d):d);f.sort();
if (column == 2 ) f.shift("EURUSD"); //adding first parameter for 3rd column
return f;}

I understand a language badly. Tried many different variants. Tell, please, in what my error?
In advance thanks.
Answer posted by Support on Feb 02, 2009 04:12
The solution with code modification was necessary if you need to have the option in question a first option in list
If you just need to have some options preselected in filter box after grid loading , you can use code similar to next

  mygrid.loadXML("500.xml",function(){
      mygrid.hdr.getElementsByTagName('SELECT')[0].value="John Grisham";  //set value of first selectbox in header, in your case index and value will differe
      mygrid.filterByAll();         //force filtering in grid by entered value
    });

Working sample sent by email.

Answer posted by Den on Feb 03, 2009 01:42
Thanks a lot!