从jqgrid单元格值获取文本

时间:2014-01-22 10:53:18

标签: jquery jqgrid

我使用格式化程序在jqgrid单元格中插入了图像和文本,如下所示:

function myFormatter (cellvalue, options, rowObject)
{  
      switch(cellvalue){
        case 'Unknown':         newCell="<img src='../../Content/images/ui-flag_green.png' />"+cellvalue;break;//unknown
        case 'Informational' :  newCell="<img src='../../Content/images/ui-flag_green.png' />"+cellvalue;break; //informational
        case 'Warning' :        newCell="<img src='../../Content/images/ui-flag_green.png' />"+cellvalue;break; //warning       
        }                 
    return newCell;
}

我需要检查我的单元格的每个值以进行另一个操作。所以我只需要获取单元格值的文本部分。

这样的事情:

var rows =myGrid.getRowData();
//for(var i=1;i<=rows;i++)
for(var i=1;i<=rows.length;i++)
{
        var rowdata =myGrid.getRowData(i);
        var Val = rowdata.myColumn;    

        switch(Val){
        case 'Unknown':         do this 1;break;//unknown
        case 'Informational' :  do THIS 2;break; //informational
        case 'Warning' :        do this 3;break; //warning    
}

获得的Valimage,但我的要求是文字。

2 个答案:

答案 0 :(得分:0)

为什么不在格式化程序中的图像中添加标题 id ,如下所示:

类似的东西:

<img id='cusmFrmt_"+rowObject.id+"' title='"+cellvalue+"'
src='../../Content/images/ui-flag_green.png' />"+cellvalue;
  

格式化程序将是:

function myFormatter (cellvalue, options, rowObject)
{  
          switch(cellvalue){
            case 'Unknown':         newCell="<img id='cusmFrmt_"+rowObject.id+"' title='"+cellvalue+"' src='../../Content/images/ui-flag_green.png' />"+cellvalue;break;//unknown
            case 'Informational' :  newCell="<img id='cusmFrmt_"+rowObject.id+"' title='"+cellvalue+"' src='../../Content/images/ui-flag_green.png' />"+cellvalue;break; //informational
            case 'Warning' :        newCell="<img id='cusmFrmt_"+rowObject.id+"' title='"+cellvalue+"' src='../../Content/images/ui-flag_green.png' />"+cellvalue;break; //warning       
            }                 
        return newCell;
}
  

在你的getRow之后:

var imgObject = $('#cusmFrmt_'+rowdata.id);
// get cell value
var cellValueTxt = imgObject.attr('title');

所以实际上它看起来像这样:

var rows =myGrid.getRowData();
//for(var i=1;i<=rows;i++)
for(var i=1;i<=rows.length;i++)
{
        var rowdata =myGrid.getRowData(i);
        var Val = rowdata.myColumn;  
        // get image object     
        var imgObject = $('#cusmFrmt_'+rowdata.id);
        // get cell value
        var cellValueTxt = imgObject.attr('title');

        switch(cellValueTxt){
        case 'Unknown':         do this 1;break;//unknown
        case 'Informational' :  do THIS 2;break; //informational
        case 'Warning' :        do this 3;break; //warning    
}

答案 1 :(得分:0)

您应该向colModel添加另一列并设置xmlmap或jsonmap属性http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data, 然后你可以引用那个新列来获得你的价值。

{name:'myColumnVal', hidden:true, jsonmap:'myColumn'}

var rows =myGrid.getRowData();
//for(var i=1;i<=rows;i++)
for(var i=1;i<=rows.length;i++)
{
        var rowdata =myGrid.getRowData(i);
        var Val = rowdata.myColumnVal;    

}