i would like to be able to programmatically changing the loading mode of dhmtlxcombo in a grid. For example, I have two dhtmlxcombo in a row in a datagrid, combo1, combo2. Based on selection from combo1, i’d like to be able to programmatically change dataloading of combo2. For example, if combo2 is initially loaded with options from an xml file, I want to programmatically change it to autofilter with a url pointing to a data source and also vice versa.
You can use setOnEditCellHandler to set function called when cell is edited (for more details see in documentation doc/alpha.html#api_a).
Combo object is created when editor is open (stage=1 in onEditCell handler). So when you open combo2, combo1 does not exists. And to get value which was selected in combo1, you have to address to the grid cell object:
comboValue = grid.cells(rowId,columnIndex).getValue()
Please, try to use following approach to programmatically changing the loading mode of dhmtlxcombo in a grid (for example, combo1 has row_id=“0” column_index=1, combo2 - column_index=2):
function myf(stage,id,index){
combo1_value = grid.cells(“0”,1).getValue();
if ((index==2)&&(stage==1)){ //start edit combo2 column
if(combo1_value == “loadXML”){
var combo=this.editor.obj;
combo.clearAll();
combo.loadXML(“data.xml”)
}
}
return true;
}
mygrid = new dhtmlXGridObject(‘gridbox’);
mygrid.imgURL = “…/…/codebase/imgs/”;
mygrid.setOnEditCellHandler(myf);
mygrid.loadXML(“combo.xml”);
By default, you can set list of options in the “combo.xml”:
<column type=“combo”…>Combo1
loadXML
from list
<column type=“combo”…>Combo2
one
…
ten