Как создать дополнительную фильтрацию в таблице?

Рейтинг: 0Ответов: 0Опубликовано: 11.03.2015

Ребят, такая беда, глобальная беда, просто катастрофа, всю голову уже сломала.

Есть приложение, есть js-файлик:

var dhxWins, winTemp;
var gridObjects;
var tbObjects, sbObjects;
var dpObjects;
var menuObjects;
function showObjects() {
    if ( typeof(tabModes) !== 'undefined' ) {
        gridObjects = tabModes.cells("a2").attachGrid();
        sbObjects = tabModes.cells("a2").attachStatusBar();
    } else {
        dhxWins = new dhtmlXWindows();
        dhxWins.attachViewportTo("object_managment");
        dhxWins.setImagePath("/dhtmlxSuite/dhtmlxWindows/codebase/imgs/");
        winTemp = dhxWins.createWindow("main", 0, 0, 0, 0);
        dhxWins.window("main").maximize();
        dhxWins.window("main").hideHeader();
        gridObjects = winTemp.attachGrid();
        //menuObjects = winTemp.attachMenu();
        tbObjects = winTemp.attachToolbar();
        sbObjects = winTemp.attachStatusBar();
        tbObjects.setIconsPath("/dhtmlxSuite/common/imgs/");
        tbObjects.addButton("new", 0, "", "new.gif", "new_dis.gif");
        tbObjects.addSeparator("sep1", 1);
        tbObjects.addButton("open", 2, "", "open.gif", "open_dis.gif");
        tbObjects.addButton("save", 3, "", "save.gif", "save_dis.gif");
        //tbObjects.disableItem("save");
        //tbObjects.addButton("save_as", 4, "Save As...", "save_as.gif", "save_as_dis.gif");
        tbObjects.addSeparator("sep2", 5);
        tbObjects.addButton("reload", 6, "", "reload.gif", "reload_dis.gif");
        /*tbObjects.addButton("redo", 7, "", "redo.gif", "redo_dis.gif");
        tbObjects.addSeparator("sep3", 8);
        tbObjects.addButton("cut", 9, "Cut", "cut.gif", "cut_dis.gif");
        tbObjects.addButton("copy", 10, "Copy", "copy.gif", "copy_dis.gif");
        tbObjects.addButton("paste", 11, "Paste", "paste.gif", "paste_dis.gif");
        tbObjects.addSeparator("sep4", 12);*/
        tbObjects.attachEvent("onClick", function(id) {
            objToolbarOnClick(id);
        });
    }
    menuObjects = new dhtmlXMenuObject();
    menuObjects.setIconsPath("/dhtmlxSuite/common/imgs/");
    menuObjects.renderAsContextMenu();
    menuObjects.addNewChild(null, 0, "edit", "Изменить");
    menuObjects.addNewChild(null, 1, "service", "Снять с обслуживания");
    menuObjects.addNewChild(null, 2, "delete", "Удалить", false, "close.gif");
    menuObjects.addNewSeparator("service");
    menuObjects.attachEvent("onClick", objMenuOnClick);

    sbObjects.setText("Выбрано: <span id='objects_amount'>0</span>");

    gridObjects.setSkin('dhx_skyblue');
    gridObjects.setImagePath("/dhtmlxSuite/dhtmlxGrid/codebase/imgs/");
    gridObjects.setHeader("№,Отделение,Район,Населенный пункт,Название,ПерваяSIM,ВтораяSIM,vivod,Автотест,МЧС");
    //gridObjects.setHeader("A,B,C");
    gridObjects.attachHeader("#text_filter,#select_filter,#select_filter,"
            + "#text_filter,#text_filter,#text_filter,#text_filter,#select_filter,"
            + "#rspan,#rspan");

    gridObjects.setColAlign("center,left,left,left,left,center,center,center,center,center");
    //gridObjects.setDateFormat("%d.%m.%Y");
    gridObjects.setColSorting("int,str,str,str,str,str,str,date,str")
    gridObjects.setInitWidths("50,120,120,200,*,100,100,65,40");
    gridObjects.setColTypes("ro,coro,coro,ed,ed,ro,ro,ro,ch");
    //gridObjects.setColSorting("int,str,str,str,str,str,str,date,str");
    gridObjects.enableContextMenu(menuObjects);
    gridObjects.init();

    gridObjects.attachEvent("onFilterEnd", objPutAmount);

    dpObjects = new dataProcessor('/objects/summary');
    dpObjects.action_param = "dhx_editor_status";
    dpObjects.init(gridObjects);
    dpObjects._console.style.top = "420px";

     //document.getElementById("filterDep").appendChild(document.getElementById("filterBoxDep").childNodes[1]);
    //document.getElementById("filterReg").appendChild(document.getElementById("filterBoxReg").childNodes[1]);
    //gridObjects.attachFooter(",,,,,,,,");

    gridObjects.loadXML("/objects/summary");

    gridObjects.setSizes();
    setTimeout("objPutAmount()", 1000);

}

function objPutAmount() {
    document.getElementById('objects_amount').innerHTML = gridObjects.getRowsNum();
}

function objToolbarOnClick(id) {
   if ( id == "save") {
        dpObjects.sendData();
    } else if ( id == "open") {
        gridObjects.deleteRow("9998");
    } else if ( id == "new") {
        gridObjects.addRow("500",["500","10"],1);
    }
}

function objMenuOnClick(menuitemId, type) {
    var data = gridObjects.contextID.split("_");
    gridObjects.selectRowById(data[0]);
}

В этом файлике dhtmlxgrid обращается к базе MySQl, мне нужно создать фильтрацию в таблице MySQl. Как мне объяснили, grid создает автоматическую фильтрацию, которая существует на большом клиенте приложения.

Вопрос заключается в том, что я не понимаю, как мне создать дополнительную фильтрацию в таблице, может быть, хоть кто-нибудь сможет объяснить на пальцах, как это безобразие создается. )))))

Ответы

Ответов пока нет.