【问题标题】:Change Cell color in JQGrid while click on Cell单击单元格时更改 JQGrid 中的单元格颜色
【发布时间】:2012-01-04 13:19:53
【问题描述】:

点击后我需要更改单元格颜色。如果我点击单元格,它应该变成绿色,如果我点击同一个单元格,它应该变成红色。现在的问题是我正在尝试找到如何做到这一点。 我曾尝试使用 onSelectCell 事件,但每当我尝试选择任何单元格时,它都不会在 JQGrid 中给我任何更改。我已经在 colModel 和 jqGrid 级别上应用了 onSelectCell。

我创建了如下静态数据网格,

   <html>
<head>
<link rel="stylesheet" type="text/css" media="screen" href="css/jquery-ui-1.8.2.custom.css" />
<link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.css" />
<script src="js/jquery-1.5.2.min.js" type="text/javascript"></script>
<script src="js/grid.locale-en.js" type="text/javascript"></script>
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery(document).ready(function()
            {
jQuery("#list4").jqGrid({ datatype: "local", height: 250, 
colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'], 
colModel:[ {name:'id',index:'id', width:60, editable: false, sorttype:"int",
        onSelectCell:function (rowid, celname, value, iRow, iCol) {background: '#888888';}},
 {name:'invdate',index:'invdate', width:90, sorttype:"date"},
 {name:'name',index:'name', width:100}, 
 {name:'amount',index:'amount', width:80, align:"right",sorttype:"float"},
 {name:'tax',index:'tax', width:80, align:"right",sorttype:"float"}, 
 {name:'total',index:'total', width:80,align:"right",sorttype:"float"},
 {name:'note',index:'note', width:150, sortable:false} ],
 multiselect: false,
 caption: "Manipulating Array Data" });
var mydata = [ {id:"1" ,invdate:"2007-10-01",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, 
{id:"2",invdate:"2007-10-02",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, 
{id:"3",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}, 
 ]; 
for(var i=0;i<=mydata.length;i++) jQuery("#list4").jqGrid('addRowData',i+1,mydata[i]);

});

</script>
</head>
<body>
Loading Static Grid...
<table id="list4"></table>
<div id="pager3"></div>
</body>
</html>

【问题讨论】:

    标签: javascript jquery jqgrid


    【解决方案1】:

    你在那里尝试做的事情不会奏效。根据jQgrid colModel options 的文档,您会注意到colModel 中没有名为onSelectCell 的选项。但是在jqGrid events 中有一个名为onCellSelect 的事件。它返回单元格的 id 和 col 的索引,因此现在可以获得单击的 td。之后剩下的就是操作 css 来实现所需的功能。

    这是一个fiddle 功能示例。那里的代码可以改进很多,但希望它能给出如何实现这一点的想法。如果您自定义 jqGrid,此处描述的代码类型将失败,例如将您自己的 id 分配给表而不是 jqGrid 默认值,因此请留意 jqGrid 的创建。如果您需要进一步的帮助,请告诉我。

    【讨论】:

    • 感谢帮助,您正在解决我的第一部分问题。
    • 第二部分是什么?如果它可以帮助您解决问题,您可以将答案标记为已接受。
    【解决方案2】:

    参见 SetCell 方法,它允许您更改单元格背景。

    http://www.trirand.com/jqgridwiki/doku.php?id=wiki:methods

    例如

    $('#grid1').jqGrid('setCell',rowid,cellname,'',{background:'red'});
    

    对于点击行为,我认为您可以捕获用户对 onCellSelect 或 ondblClickRow 事件的点击。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-12
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-04
      相关资源
      最近更新 更多