我們正在使用DHTMLX網格。需要一些幫助,請。查找已移動列的索引
我有一個表,每列(過濾器/下拉列表)分配一個ID例如。 fac,date,sel,loc,tag ...等
我們已經硬編碼了列的索引來設置Cookie,並在別處獲取cookie。
function doInitGrid(){
mygrid.setColumnIds("fac,date,sel,loc,tag"); //set ids
mygrid.attachEvent("onFilterStart",function(ind,data)
{
setCookie("Tray_fac_filter",mygrid.getFilterElement(0).value,365); //column index 0
setCookie("Tray_loc_filter",mygrid.getFilterElement(3).value,365);//column index 3
setCookie("Tray_tag_filter",mygrid.getFilterElement(4).value,365); //column index 4
mygrid.getFilterElement(0).value = getCookie("Tray_fac_filter")
mygrid.getFilterElement(3).value = getCookie("Tray_dep_filter")
mygrid.getFilterElement(4).value = getCookie("Tray_prg_filter")
});
}
但是當列移動時,問題就出現作爲的列變化指數但它在setCookie方法設置/ getCoookie
DHTMLX允許使用獲得的id指數 -
var colInd = grid.getColIndexById(id);
eg: var colInd = grid.getColIndexById(date); // outputs 1.
After moving the date column to the end -- fac, sel, loc, tag, date // it will output 4.
然而,我們大約有14列可移動/重排,我可以用
var colInd = grid.getColIndexById(id); 15 times
var facInd = grid.getColIndexById("fac");
var dateInd = grid.getColIndexById("date");
var selInd = grid.getColIndexById("sel");
var locInd = grid.getColIndexById("loc";
var tagInd = grid.getColIndexById("tag");
並將這些變量放在set/get cookie中。我在想如果有更好的方法。
爲了更好地理解代碼,我將代碼的最小化版本放在小提琴中。
http://jsfiddle.net/19eggs/s5myW/2/