DHTMLX网格提取额外数据

时间:2016-03-08 21:07:51

标签: javascript php mysql dhtmlx

我正在尝试构建一个应用程序供用户提交他们的工作时间,但是在将额外的数据提取到网格中时遇到了麻烦。

例如:如果用户在员工代码列中键入员工代码0000,则员工姓名字段需要更新为“John Doe”所有这些数据都存储在后端的数据库中,我有能够在刷新时访问它,例如。如果在创建新行并且数据存在后重新加载页面,它将提取正确的数据,但我不希望他们必须刷新页面才能执行此操作。如何在更新单元格后提取额外数据。

使用JavaScript在页面上创建网格,如下所示:

timesheetGrid.setColumnIds("Column Names, Column Names");
            timesheetGrid.setImagePath("codebase/imgs/"); //set the image path for the grids icons
            timesheetGrid.setInitWidths("70,100,100,100,70,100,150,100,70,70,100,70,70,*,*");  //sets the initial widths of columns
            timesheetGrid.setColAlign("center,center,center,center,center,center,center,center,center,center,center,center,center,left,left");  //sets the alignment of columns
            timesheetGrid.setColTypes("edn,ro,dhxCalendar,ro,edn,ro,ed,ro,ro,ro,ed,edn,ch,txt,ro"); //sets the types of columns
            timesheetGrid.setColSorting("str,str,date,date,str,str,str,str,str,str,str,str,str,str,str");  //sets the sorting types of columns
            timesheetGrid.setDateFormat("%Y-%m-%d"); //Set the Date Format to be used in the Grid
            timesheetGrid.attachHeader("#text_filter,#text_filter,#text_filter,,#text_filter,#text_filter,#text_filter,#text_filter,#text_filter,#text_filter,#text_filter,#text_filter,,,");
            timesheetGrid.setColumnHidden(3,true);
            timesheetGrid.enableEditEvents(true,false,true);
            timesheetGrid.init();
            //timesheetGrid.makeFilter("WeekEnding",0); //TODO: Add Filter For Week Ending
            //this.lockRow(id, true); //Make Specific Row Read Only TODO: Non Active Week Rows Read Only
            timesheetGrid.load("data/timesheets.php");
            var dpg = new dataProcessor("data/timesheets.php");
            dpg.enableDataNames(true); // will use names instead of indexes
            dpg.init(timesheetGrid);

PHP用于从正确的途径中提取数据

require("../codebase/connector/grid_connector.php");//adds the connector engine
    $conn = new GridConnector($res,"MySQL");             //initializes the connector object
if ($conn->is_select_mode()) {//code for loading data
    SQL Code is HERE
}else { //code for other operations - i.e. update/insert/delete
    OTHER SQL CODE IS HERE
}

由于数据非常敏感,因此给您带来的任何不便表示遗憾。 非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

如果您提供的数据是XML,您可以将事件附加到网格并调用此grid.updateFromXML(“data / timesheets.php”); 这将解析并绘制整个网格信息

如果您只想更新更新的行,可以通过GET发送行的ID,它只会解析并绘制您发送的行 grid.updateFromXML(“data / timesheets.php?for =”+ row_id));

完整代码将是这样的:

dpg.defineAction ("update", myUpdate);
function myUpdate(tag){
    timesheetGrid.updateFromXML("data/timesheets.php?for="+tag.getAttribute("sid"));
    return true;
}

如果您检索的数据不是XML格式的,我担心您需要通过同一事件手动更新行中的值。