Jqgrid給單元格添加URL沒有給定的方法,需要自己實現
實現思路:
首先要取得所有的行,然后遍歷行,把每行的數據對應取出來,然后再對應遍歷行數據,把具體的單元格取出來(在jqgrid貌似只能取到單元格內容,而不能取到特定的單元格(如果有知道怎么取的大俠請不吝賜教))然后直接把數據賦值到單元格就可以了。
實現步驟:
1.找到所有的表格中的行的索引
var array=gridTable.
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>'); } } } }