Jqgrid给单元格添加URL没有给定的方法,需要自己实现
实现思路:
首先要取得所有的行,然后遍历行,把每行的数据对应取出来,然后再对应遍历行数据,把具体的单元格取出来(在jqgrid貌似只能取到单元格内容,而不能取到特定的单元格(如果有知道怎么取的大侠请不吝赐教))然后直接把数据赋值到单元格就可以了。
实现步骤:
1.找到所有的表格中的行的索引
getDataIDs(); 获取数组
getDataIDs | none | array[] | 返回当前grid里所有数据的id |
2.遍历行索引数组,找到行里面的值
var rowarray=gridTable.getRowData(array[1]);得到一个行的数组,里面有行的各种值,包括列名称(colname)和值,它是一个以列名称为键,单元格中的值为内容的数组
getRowData | rowid or none | array[] | 返回指定行的数据,返回数据类型为name:value,name为colModel中的名称,value为所在行的列的值,如果根据rowid找不到则返回空。在编辑模式下不能用此方法来获取数据,它得到的并不是编辑后的值 |
3.遍历rowarray,和rowid结合找到具体的单元格,通过gridTable.getCell(array[i],rowarray[j]);
getCell | rowid, iCol | 单元格内容 | 返回指定rowid,iCol的单元格内容,iCol既可以是当前列在colModel中的位置索引也可以是name值。注意:在编辑行或者单元格时不能使用此方法,此时返回的并不是改变的值,而是原始值 |
4.设定表格内容:setCell()
关于如何获取colname,有一个方法,for(i in gridTable.getRowData(1)) console.log(i);,这个里面的i,就是键
>>> for(i in gridTable.getRowData(1)) console.log(i);
CITY
KPI3
KPI2
KPI6
KPI5
KPI1
CREATETIME
以上是在firebug中查看的
setCell | rowid,colname, data, class, properties | jqGrid对象 | 改变单元格的值。rowid:当前行id;colname:列名称,也可以是列的位置索引,从0开始;data:改变单元格的内容,如果为空则不更 新;class:如果是string则会使用addClass方法将其加入到单元格的css中,如果是array则会直接加到style属性中;properties:设置单元格属性 |
最终代码如下:
//Jqgird给表格添加URL链接
function processGridValue(){
var cell;
var array=gridTable.getDataIDs();
for ( var i = 0; i < array.length; i++) {
var rowarray=gridTable.getRowData(array[i])
for ( var rowname in rowarray) {
if(rowname.indexOf("KPI")>-1){
cell=gridTable.getCell(i+1,rowname);
gridTable.setCell(i+1,rowname,'<a href="#">xxx'+cell+'</a>');
}
}
}
}