Drop down menu 如何使用“选择编辑类型”和“不使用自定义格式设置程序”有条件地为列着色

Drop down menu 如何使用“选择编辑类型”和“不使用自定义格式设置程序”有条件地为列着色,drop-down-menu,jqgrid,jqgrid-formatter,Drop Down Menu,Jqgrid,Jqgrid Formatter,我想用select edit type有条件地为列文本着色。若我使用自定义格式化程序,那个么值就会改变。下面是我的代码片段,它不起作用 function generateEventHandlerGrid(eventsJson){ var eventGrid = $("#eventGrid"); eventGrid.jqGrid({ datatype: 'local', data: event

我想用select edit type有条件地为列文本着色。若我使用自定义格式化程序,那个么值就会改变。下面是我的代码片段,它不起作用

    function generateEventHandlerGrid(eventsJson){
        var eventGrid = $("#eventGrid");
           eventGrid.jqGrid({
               datatype: 'local',
               data: eventsJson.eventInfo,
             jsonReader: {repeatitems: false},
    colNames: ['Event Category', 'Event Creation'],
{name: 'eventCategory', index: 'eventCategory',align:"center"},
{name: 'enabled', index: 'enabled', width:"100px",align:"center",editable:true,edittype: 'select',
                 editoptions: {value: "1:Enable;0:Disable"}, formatter: function ( cellvalue, options, rowObject ){
                    if (rowObject.enabled == 1){
                       var cellHtml = "<span style='color:" + "red" + "' originalValue='" + rowObject.enabled + "'>" + "Enable" + "</span>";
                       return cellHtml;
                    }else{
                       var cellHtml = "<span style='color:" + "green" + "' originalValue='" + rowObject.enabled + "'>" + "Disable" + "</span>";
                       return cellHtml;
                    }
                 }}],
    viewrecords: true,
    gridview: true,
    rownumbers: true,
    shrinkToFit: false,
               height: strMinimumHeight,
               editurl: "clientArray",
               restoreAfterSelect: false,
               loadonce: true,
    }

如何在没有自定义格式化程序的情况下根据值设置文本颜色?

自定义格式化程序的目标是格式化单元格的内容。在当前代码中,您试图做的是在单元格中的外部DOM元素上设置style属性。最好的特性是cellattr回调。因此,您仍然可以使用一些格式化程序,例如,将内容格式化为日期,并仍然设置一些样式或类,这会更改单元格的属性

cellattr回调的确切参数列表取决于您使用的jqGrid的版本和分支。您可以尝试用以下代码将格式化程序替换为cellattr

cellattr:函数rowid、cellValue、rowData、cm、项{ return style='color:+rowData.enabled==1?红色:绿色+; }
你发布的代码很难阅读。顺便说一句,代码也有缺陷:colModel在colNames之后丢失。请在关于jqGrid的每一个问题中包含关于您可以使用的jqGrid版本的信息,以及我发布的小代码版本中的fork、commercial或旧jqGrid。它包含大量的代码,所以不容易粘贴整个。我正在使用getRowData获取数据。如何从自定义格式化程序获取原始值?我对jqgridWorks很陌生。谢谢还有一个问题,当我想用相同的值给行上色时该怎么办?还是改变整排人的背景?@DarshanShah:不客气!可以使用rowattr回调函数作为网格选项,而不是在列内部更改某些行的属性、颜色等。请参阅相应的旧版本。此外,如果您仍然不使用jqGrid,我建议您升级到4.15.1——我开发的jqGrid的分支。是的,我已经找到了相同的链接并实现了,运行良好。谢谢