我使用格式化程序在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
}
获得的Val
是image
,但我的要求是文字。
答案 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;
}