2012-01-04 41 views
2

JQGridの以下の問題を解決するために私を助けてください。私はJqGridを初めて使っているので、私と一緒に裸にしてください。セルをクリックしながらJQGridでセルの色を変更します

私はそれをクリックした後にセルの色を変更する必要があります。セルをクリックすると緑色になり、同じセルをクリックすると赤色になります。今問題は、私がそれをやる方法を見つけようとしていることです。 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> 

できるだけ早く私に返信してください。あなたがそこに動作しませんやろうとしている何

おかげで、よろしく、 シャイレンドラ曽爾

答えて

2

jQgrid colModel optionsのドキュメントによれば、colModelにはonSelectCellというオプションはありません。しかし、jqGrid eventsonCellSelectというイベントがあります。これは、セルのidとcolのインデックスを返します。したがって、クリックされたtdを取得できるようになりました。その後、すべての必要なものを達成するためにCSSを操作する必要があります。

ここには、fiddleの機能の例があります。そこにあるコードはたくさんの点で改善できるが、うまくいけば、これがどのように達成されるのかが分かるだろう。 jqGridをカスタマイズすると、jqGridのデフォルトではなく独自のIDを与えるように、ここで記述されている種類のコードは失敗するので、jqGridが作成されているかどうかを確認してください。さらなる助けが必要な場合はお知らせください。

+0

助けてくれて、私の最初の部分を解決しています。 – Shailendra

+0

2番目の部分は何ですか?あなたが問題を解決するのに役立つならば、答えを合格とマークすることができます。 –

1

メソッドSetCellを見ると、セルの背景を変更することができます。

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

クリック動作の

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

、私はあなたがトラップonCellSelectまたはondblClickRowイベントで、ユーザーのクリックをことができると思います。

関連する問題