【问题标题】:how to set jqgrid cell color at runtime如何在运行时设置jqgrid单元格颜色
【发布时间】:2010-05-28 05:05:23
【问题描述】:

我正在从数据库中填充一个 jqgrid,其中一个列是一个颜色列,如红色、蓝色等。我可以根据运行时来自数据库的值来设置该列的单元格颜色吗?在这种情况下我应该如何设置格式化程序?我试过这样但不工作

var colorFormatter = function(cellvalue, options, rowObject) {
        var colorElementString = '<div class="colorBlock" style="background-color: red;"></div>';
        return colorElementString;
---
---
colModel: [
                { name: 'GroupName', index: 'GroupName', width: 200, align: 'left' },
                { name: 'Description', index: 'Description', width: 300, align: 'left' },
                { name: 'Color', index: 'Color', width: 60, align: 'left', formatter: colorFormatter}],

【问题讨论】:

  • 我删除了 class="colorBlock" 它开始为我工作

标签: asp.net jqgrid


【解决方案1】:

向格式化颜色的函数添加加载完成调用:

loadComplete: function (data) {
    $.each(data.rows, function (i, item) {
        var rowId = data.rows[i].id || data.rows[i]._id_;
        var myRow = new Array(item.valueOf());

        jQuery('#' + grid).setCell(rowId, colName, '', { background: 'red'});
    });
}

您只需添加代码以检查您要申请的条件。

【讨论】:

    【解决方案2】:

    我正在根据状态更改行的背景颜色(“状态”是数据列)。希望这可能会有所帮助。这是示例代码:

    <style>
        .state_inactive {
            background-color:##FF9999 !important;
            border:1px solid ##A6C9E2;
            color:##222222;
        }
    </style>
    
    <script type="text/javascript">
        $j("#Grid").jqGrid({
            url:"getData.php",
            datatype:"json",
            colNames:['Name', 'Organization', 'Status'],
            colModel:[{name:'name', index:'name'}, {name:'organization', index:'organization'}, {name:'status', index:'status'}],
        },
        gridComplete:function() {
            var ids = jQuery("#Grid").jqGrid('getDataIDs');
    
            for (var i = 0; i < ids.length; i++) { 
                var status = jQuery("#Grid").jqGrid("getCell", ids[i], 'status');
    
                if (status == "-20") {
                    $j('#' + ids[i]).removeClass("ui-widget-content");
                    $j('#' + ids[i]).addClass("state_inactive");
                }
            }
        })
    </script> 
    

    【讨论】:

      【解决方案3】:

      看起来像jqgrid 的设计缺陷。

      最好的方法是在加载过程中实现这一点,自定义格式化程序只有一个值,您可以这样做。但是你需要做的不是值,而是它前面的 div 或 span。

      【讨论】:

        猜你喜欢
        • 2010-11-21
        • 2011-07-13
        • 2011-05-03
        • 1970-01-01
        • 2011-06-23
        • 2021-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多