【问题标题】:jqgrid odd even row colorjqgrid奇偶行颜色
【发布时间】:2014-03-21 07:15:04
【问题描述】:

当我将样式类 myAltRowClass 更改为 jqgrid odd even row 的备用 colors 时。左、右、下边框为黑色。

我想通过cssall jqgrids申请odd even row color

网格如下图所示

loadComplete函数中使用下面的代码时不会出现此问题

$("tr.jqgrow:odd").css("background", "#E0E0E0");

jqgrid 如下图所示

Css 类

.myAltRowClass {
    background: #E0E0E0;
}

代码:

$(document).ready(function(){
            //jqGrid
            $("#usersList").jqGrid({
                url:'<%=request.getContextPath() %>/Admin/getAllUsersList',
                datatype: "json",               
                colNames:['Edit','First Name','Middle Name','LastName','Mobile Number','Active'],
                colModel:[
                    {name:'userId',search:false,index:'userId',width:30,sortable: false,formatter: editLink},                       
                    {name:'firstName',index:'firstName', width:100},
                    {name:'middleName',index:'middleName', width:100},
                    {name:'lastName',index:'lastName', width:100},
                    {name:'mobileNo',index:'user.mobileNo', width:100},
                    {name:'isActive',index:'user.isActive',width:80},
                    ],
                    rowNum:20,
                    rowList:[10,20,30,40,50],
                    rownumbers: true,  
                    pager: '#pagerDiv',
                    sortname: 'user.primaryEmail',  
                    viewrecords: true,  
                    sortorder: "asc",

                    loadComplete: function() {
                        //$("tr.jqgrow:odd").css("background", "#E0E0E0");

                        $("tr.jqgrow:odd").addClass('myAltRowClass');
                    },

            });
            $('#gridContainer div:not(.ui-jqgrid-titlebar)').width("100%");
            $('.ui-jqgrid-bdiv').css('height', window.innerHeight * .65);
            $('#load_usersList').width("130");
            $("#usersList").jqGrid('navGrid','#pagerDiv',{edit:false,add:false,del:false},{},{},{}, {closeAfterSearch:true});
            $(".inline").colorbox({inline:true, width:"20%"});
        });

        function editLink(cellValue, options, rowdata, action)
        {
            return "<a href='<%=request.getContextPath()%>/Admin/editUser/" + rowdata.userId + "' class='ui-icon ui-icon-pencil' ></a>";
        }

【问题讨论】:

    标签: jquery css json jqgrid


    【解决方案1】:

    The demo 演示了如何定义 CSS 规则并将规则设置为网格的奇数行和偶数行。演示中使用的代码

    loadComplete: function () {
        $(this).find(">tbody>tr.jqgrow:odd").addClass("myAltRowClassEven");
        $(this).find(">tbody>tr.jqgrow:even").addClass("myAltRowClassOdd");
    }
    

    了解 jqGrid 使用网格中的第一个 隐藏 行来设置列宽非常重要。因此,必须使用 jQuery :even 选择器在 odd 行上设置类,而必须使用 :odd 选择器在 even 行上设置类。

    我在演示中使用的 CSS 规则如下

    .myAltRowClassEven { background: #E0E0E0; border-color: #79B7E7; color: Tomato; }
    .myAltRowClassOdd { background: DarkOrange; }
    .ui-state-hover.myAltRowClassEven { color: Magenta; }
    .ui-state-hover.myAltRowClassOdd { color: RoyalBlue; }
    .ui-state-highlight.myAltRowClassEven { color: PaleGreen; }
    .ui-state-highlight.myAltRowClassOdd { color: Sienna; }
    

    因此,人们会得到非常多色的图片,例如奇数/偶数/悬停/选定行的不同颜色或背景颜色:

    颜色看起来很糟糕。我只想演示如何在那里进行自定义。

    【讨论】:

      【解决方案2】:

      myAltRowClass 中添加了border-color: #79B7E7。 jqgrid奇行背景色无边框变化。

      .myAltRowClass {
         background: #E0E0E0;
         border-color: #79B7E7;
      }
      

      【讨论】:

      • 很明显background-colorborder-color(或者jqGrid使用的border-bottom-colorhere)是不同的。您可以扩展用于.myAltRowClass$("tr.jqgrow:odd").css({background: "#E0E0E0", "border-color": "#79B7E7"}); 的CSS 设置。 background-color 的 CSS 规则可能不起作用,这取决于由于背景图像而使用的 jQuery UI 主题。 background: #E0E0E0; 删除了 jQuery UI 主题的 background-image。所以颜色会安全显示。
      • @Oleg 用于在整个项目的 jqgrid 中应用奇数行偶数行颜色,我称之为myAltRowClass 类。如果我使用 $("tr.jqgrow:odd").css({background: "#E0E0E0", "border-color": "#79B7E7"}); 这种格式,我会在使用 jqgrid 的每个屏幕上更新。
      • 如果您在loadComplete 中执行此操作,那么您当然应该使用this$(this).find("&gt;tbody&gt;tr.jqgrow:odd").addClass("myAltRowClass")。此外,您应该为 myAltRowClass 定义 CSS 规则,并使用 more deep 级联。例如.ui-jqgrid .myAltRowClass {background: #E0E0E0;} 使得不需要使用.removeClass('ui-widget-content')。我个人更喜欢只使用.myAltRowClass {background: #E0E0E0;}。在偶数行悬停的情况下可以正常工作并且可以选择行。
      • @Oleg 我们可以更改 jqgrid 中的even row 颜色吗?
      • 对不起,我不明白你的意思。 jqGrid 仅在您使用 altRows: truealtclass: "myAltRowClass" 选项时设置它。您更喜欢手动设置类。文本的颜色可以在myAltRowClass 类中设置。例如,尝试使用以下 CSS 规则:.myAltRowClass { background: #E0E0E0; border-color: #79B7E7; color: red; } .ui-state-hover.myAltRowClass { color: Magenta; } .ui-state-highlight.myAltRowClass { color: PaleGreen; }。最后两条规则改变悬停或选中的偶数行的文本颜色。
      猜你喜欢
      • 1970-01-01
      • 2021-12-31
      • 2013-08-21
      • 2012-08-19
      • 1970-01-01
      • 2017-03-18
      • 2011-06-17
      • 2014-07-20
      • 2021-11-10
      相关资源
      最近更新 更多