jqgrid的列名为“发布”.它可以定位在不同的位置,这取决于客户如何配置网格,但始终是prq.

如果“发布”列的值为“真”,我需要更改行的背景颜色

我尝试下面的colmodel,但alert(rdata.Posted)显示总是未定义的.

如何改变行的背景颜色,如果此行中的“发布”列的值为true?

我查看了许多Oleg和其他解决方案来改变背景颜色,但他们使用硬编码的列号.

colModel: [

{"cellattr":function(rowId,tv,rawObject,cm,rdata) {  
if (rdata.Posted)
    return 'class="jqgrid-readonlycolumn"';
    return '';
      },"label":"Klient","name":"Klient_nimi","classes":null,"hidden":false},{"label":null,"name":"Posted","editable":true,"width":0,"hidden":true}],...

更新

在update2中,Oleg建议使用rowattr.我还需要隐藏内联的删除按钮和自定义帖子按钮.我在下面的loadComplete中的usijng代码.如何使用rowattr来实现?

var LoadCompleteHandler = function () {
    var iCol = getColumnIndexByName($grid,'Kinnitatud'),postedDateCol = getColumnIndexByName($grid,'Kinkuup'),cRows = $grid[0].rows.length,iRow,row,className,isPosted,mycell,mycelldata,i,count,cm = $grid.jqgrid('getGridParam','colModel'),l,iActionsCol = getColumnIndexByName($grid,'_actions');
    l = cm.length;
    if (iCol > 0 || postedDateCol > 0) {
        for (iRow = 0; iRow < cRows; iRow = iRow + 1) {
            row = $grid[0].rows[iRow];
            className = row.className;
            isPosted = false;
            if ($.inArray('jqgrow',className.split(' ')) > 0) { // $(row).hasClass('jqgrow')
                if (iCol > 0) {
                    isPosted = $(row.cells[iCol]).find(">div>input:checked").length > 0;
                }
                if (postedDateCol > 0) {
                    mycell = row.cells[postedDateCol];
                    mycelldata = mycell.textContent || mycell.innerText;
                    isPosted = mycelldata.replace(/^\s+/g,"").replace(/\s+$/g,"") !== "";
                }

                if (isPosted) {
                    if ($.inArray('jqgrid-postedrow',className.split(' ')) === -1) {
                        row.className = className + ' jqgrid-postedrow';
                        $(row.cells[iActionsCol]).find(">div>div.ui-inline-del").hide();
                        $(row.cells[iActionsCol]).find(">div>div.ui-inline-post").hide();
                    }
                }
            }
        }
    }

解决方法

主要的想法是改变行的背景颜色,你会发现 here和 here.我建议你阅读 this answer,讨论不同方法的不同优点和缺点.

要从列名中获取列索引,可以使用以下简单函数:

var getColumnIndexByName = function(grid,columnName) {
        var cm = grid.jqgrid('getGridParam',i=0,l=cm.length;
        for (; i<l; i++) {
            if (cm[i].name===columnName) {
                return i; // return the index
            }
        }
        return -1;
    };

函数getColumnIndexByName($(“#list”),’MyColumnName’)将获取’MyColumnName’列的colModel中的索引.

要更改背景颜色,您可以按照示例

loadComplete: function() {
    $("tr.jqgrow:odd").addClass('myAltRowClass');
}

从the answer,而不是’:odd’过滤器,您可以使用jQuery.filter自己编写过滤器.在过滤器内部,您可以使用:nth-child()访问相应的< td>元素(参见here)

更新:您可以执行以下操作(非常接近the another answer的代码):

loadComplete: function() {
    var iCol = getColumnIndexByName($(this),'closed'),cRows = this.rows.length,className;

    for (iRow=0; iRow<cRows; iRow++) {
        row = this.rows[iRow];
        className = row.className;
        if ($.inArray('jqgrow',className.split(' ')) > 0) {
            var x = $(row.cells[iCol]).children("input:checked");
            if (x.length>0) {
                if ($.inArray('myAltRowClass',className.split(' ')) === -1) {
                    row.className = className + ' myAltRowClass';
                }
            }
        }
    }
}

相应的演示是here.您将看到以下内容:

顺便说一句,如果“已关闭”列将被隐藏,所有内容将继续像以前那样工作.

UPDATED 2:The answer描述了如何使用rowattr回调来简化解决方案并获得最佳性能(在gridview:true的情况下).

javascript – jqGrid:根据列名称,根据行单元格值更改行的背景颜色的更多相关文章

  1. jQuery插件jqGrid动态获取列和列字段的方法

    这篇文章主要介绍了jQuery插件jqGrid动态获取列和列字段的方法,结合实例形式分析了表格插件jqGrid针对表格字段属性相关操作技巧,需要的朋友可以参考下

  2. jqgrid实现简单的单行编辑功能

    这篇文章主要介绍了jqgrid实现简单的单行编辑功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. 利用jqgrid实现上移下移单元格功能

    这篇文章主要给大家介绍了关于如何利用jqgrid实现上移下移单元格功能的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  4. jqGrid翻页时数据选中丢失问题的解决办法

    我在项目中使用jqGrid时,采用异步加载服务器数据,例如点击翻页、搜索时都重新加载数据。这篇文章主要介绍了jqGrid翻页时数据选中丢失问题,需要的朋友可以参考下

  5. jqGrid 学习笔记整理——进阶篇(一 )

    这篇文章主要介绍了jqGrid 学习笔记整理——进阶篇(一 )的相关资料,需要的朋友可以参考下

  6. jqGrid用法汇总(全经典)

     jqGrid可以绑定XML,JSON和数组三种类型的数据。接下来通过本文给大家介绍jqGrid用法的相关知识,感兴趣的朋友一起学习吧

  7. jqGrid表格底部汇总、合计行footerrow处理

    这篇文章主要为大家详细介绍了jqGrid表格底部汇总、合计行footerrow处理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  8. jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)

    这篇文章主要介绍了jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能),想要学习jQuery的可以了解一下。

  9. 获取jqGrid中选择的行的数据

    本文主要介绍了获取jqGrid中选择的行的数据的语法和获取简例,需要的朋友可以看下

  10. jQGrid动态填充select下拉框的选项值(动态填充)

    这篇文章主要介绍了jQGrid动态填充select下拉框的选项值(动态填充)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部