2013-02-16 3 views
2

Я прочитал сообщение, но я все еще не могу следовать из-за того, что я новичок в jqgrid. У меня есть jqgrid, у которого есть 5 столбцов, но 1 столбец пуст для начала. После некоторого обновления он будет заполнен.JQgrid: изменить цвет шрифта всей строки, если заполнен один столбец

Я хочу, чтобы JQgrid менял цвет шрифта для этой строки, поэтому, если он заполнен, эта строка изменит цвет шрифта на синий.

jQuery("#list").jqGrid({ 
.... 
colModel :[ 
     {name:'prob_id', index:'prob_id', hidden:true, width:10}, 
     {name:'Model',index:'Model',width:100,editable:true,search:true,stype:'text',searchoption:{sopt:['cn']}}, 
     {name:'Serial', index:'Serial',width:80,editable:true,search:true,stype:'text',searchoptions:{sopt:['cn']}}, 
     {name:'Lotno', index:'Lotno', width:50, editable:true, 
       search:true, 
       stype:'text', 
       searchoption:{sopt:['cn']}}, 
     {name:'Detail', index:'Detail', hidden:true,width:70,formatter:myformat} 
             ], 
.... 

function myformat (cellvalue, options, rowObject) 
       { 
         if (!empty(cellvalue)){ 
         return '<font color="blue">' + cellvalue + '</font>';//or use classes 
         } else{ 
         return '<font color="black">' + cellvalue + '</font>';//or use classes 
         } 
       } 

Я хотел бы изменить цвет шрифта для всех строк, которые имеют значение для детализации поля

, но я получаю сообщение об ошибке:

empty is not defined 

UPDATE

попробуйте этот путь: Я решил перенести это условие на:

function myformat (cellvalue, options, rowObject) 
       { 
         if (cellvalue == "closed"){ 
         return '<font color="blue">' + cellvalue + '</font>';//or use classes 
         } else{ 
         return '<font color="black">' + cellvalue + '</font>';//or use classes 
         } 
       } 

и все работает, но кажется, что только одна колонка, которая превращается в синюю, я хочу целую строку, которая имеет условие CLOSED.

+0

попробовать с этим, если (! Нуль (CellValue)) – Kvadiyatar

+0

@ Kvadiyatar: error, show: 'object is not a function' – nunu

+0

можно попробовать с помощью этого: if (cellvalue! = Null) ... plz сообщите мне, если все еще получите ошибку. – Kvadiyatar

ответ

3

Попробуйте afterInsertRow и setRowData как в коде, приведенном ниже

afterInsertRow: function(rowid, rowData, rowelem) { 
    var detail= rowData['Detail']; 
    if(detail=="Closed"){ 
$(this).jqGrid('setRowData', rowid, false, { color: '#000' }); 
    }else { 
$(this).jqGrid('setRowData', rowid, false, { color: '#FF0000' }); 
    } 
    }, 

Удалить GridView: истина (afterInsertRow не будет работать, если GridView верно)

+0

, где поставить это? внутри colModel или внутри 'jQuery (« # list »). jqGrid ({? – nunu

+0

Внутри jQuery (« # list »). jqGrid ({ – Kris

+0

цвет не изменяется. Посмотрите на мое обновленное сообщение, оно работает, но только для ячейки, которая имеет значение 'CLOSED' – nunu

Смежные вопросы