对于一个统计结果的jgrid,如果想在选中某个具体的单元格时需要显示该单元格统计结果的来源,即统计的明细信息。例如下面的jgrid是对各个单位不同项目类型的统计数:
现在想在点击某个特定的单元格时,显示明细。
首先,很显然需要两个grid,一个用于显示统计结果,一个用于显示明细。
关键代码如下截图:
首先定义了全局变量selectedIndex和selectedData,注意在页面初始化时对这两个变量初始化!反查询人员grid(pyhtgl_pyhtxxQueryCount_dialog_queryPYHT_grid)就是用于显示统计明细的,统计grid
(pyhtgl_pyhtxxQueryCount_statistic_grid)于显示统计结果。
在统计grid中添加了onCellSelect方法,该方法有四个参数:rowid,iCol,cellcontent,e,当点击单元格时触发。rowid:当前行id;iCol:当前单元格索引;cellContent:当前单元格内容;e:event对象。在单击单元格时使用selectedData = pyhtgl_pyhtxxQueryCount_statistic_grid.ylzgrid('getRowItem', rowid)取得当前选中的行,从而获得具体的单位名称,通过参数index获得选中的列的索引(从1开始),从而获得选中的项目。
需要注意的是:如果未在onCellSelect中使用
selectedData = pyhtgl_pyhtxxQueryCount_statistic_grid.ylzgrid('getRowItem', rowid)为全局变量selectedData赋值,而是为统计grid添加onSelectRow方法,并使用selectedData = pyhtgl_pyhtxxQueryCount_statistic_grid.ylzgrid('getRowItem', rowid)为局变量selectedData赋值。那么结果是:每次单击单元格时,单位都会查错,总是会查到上次选中行的单位。这是因为onCellSelect方法先于onSelectRow执行,所以当加载反查grid时,selectedData 还没来得及被赋予最新的选中行。这点切记!!!