有人可以帮助我,我有一个jqgrid,如果复选框为true,我想突出显示该行,谢谢!!

这就是我想在这个项目中做出的......
function loadjqGrid(jsonGridData){
var xaxis=1300
var yaxis = $(document).height();
yaxis = yaxis-500;
getGrids();
$("#maingrid").jqGrid({
url:'models/mod.quoservicetypedetails.php?ACTION=view',
mtype: 'POST',
datatype: 'xml',
colNames:getColumnNames(jsonGridData),
colModel :[
{name:'TypeID', index:'TypeID', width:350,hidden:true, align:'center',sortable:false,editable:true,
edittype:"select",editoptions:{value:getTypeID()},editrules: { edithidden: true}},
{name:'Order1', index:'Order1', width:80, align:'center',sortable:false,editable:true,edittype:"textarea",editoptions:{size:"30",maxlength:"30"}},
{name:'Order2', index:'Order2', width:80, align:'center',sortable:false,editable:true,edittype:"textarea",editoptions:{size:"30",maxlength:"30"}},
{name:'Order3', index:'Order3', width:80, align:'center',sortable:false,editable:true,edittype:"textarea",editoptions:{size:"30",maxlength:"30"}},
{name:'Description', index:'Description', width:140, align:'center',sortable:false,editable:true,
edittype:"textarea",editoptions:{size:"30",maxlength:"30"}},
{name:'Notes', index:'Notes', width:120, align:'center',sortable:false,editable:true,edittype:"textarea",editoptions:{size:"30",maxlength:"30"}},
{name:'Measure', index:'Measure', width:80, align:'center',sortable:false,editable:true, edittype:"textarea", editoptions:{size:"30",maxlength:"30"}},
{name:'UnitPrice', index:'UnitPrice', width:100, align:'center',sortable:false,editable:false,edittype:"textarea",editoptions:{size:"30",maxlength:"30"}},
{name:'Remarks', index:'Remarks', width:140, align:'center',sortable:false,editable:true,edittype:"textarea",editoptions:{size:"30",maxlength:"30"}},
{name:'UnitCost', index:'UnitCost', width:100, align:'center',sortable:false,editable:true,edittype:"textarea",editoptions:{size:"30",maxlength:"30"}},
{name:'Service', index:'Service', width:120, align:'center',sortable:false,editable:true,edittype:"textarea",editoptions:{size:"30",maxlength:"30"}},
//If the GroupHeader is true the …Run Code Online (Sandbox Code Playgroud) 我在$(document).ready上使用以下行(
$("#stSearchTermsGrid").setCell(2, 2, '', {color:'red'}) ;
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我是以错误的方式写它还是把它放在错误的地方.
我知道这个问题不止一次被问过,这就是我得到第一行的方式.但我仍然无法做到这一点,也不知道问题出在哪里.
我们不能让斑马条纹在jqGrid中工作.
我们使用altclass和altRows - 问题是看来ui-widget-contentJQuery UI 中的类有一个background覆盖我们altclass background设置的设置.有任何想法吗?
更新:以下两个答案都有效.到目前为止,Oleg是最干净的解决方案.
对于Oleg的解决方案,必须在包含JQuery UI CSS类之后定义altRows类,因为JQuery UI和自定义alt行类都定义了background属性和最后定义的类类wins.
我知道之前有人问过这个问题,但是我无法让它运行起来,我没有尝试过.
如果它的值不是1,我想在网格中着色一行 - 我为此使用自定义格式化程序.格式化程序本身有效,这不是问题.
我尝试了迄今为止我在网上找到的多种方法 - 添加一个类,直接添加CSS代码,使用setRowData,使用setCell....
这是我的例子 - 它们都不适合我(Linux,ff363) - 任何指针都会非常感激.
27.05.2010_00:00:00-27.05.2010_00:00:00是我的行ID
<style>
.state_inactive {
background-color: red !important;
}
.state_active {
background-color: green !important;
}
</style>
function format_state (cellvalue, options, rowObject)
{
var elem='#'+options.gid;
if (cellvalue != 1) {
jQuery('#list2').setRowData(options.rowID,'',
{'background-color':'#FF6F6F'});
jQuery('#list2').setRowData('27.05.2010_00:00:00-27.05.2010_00:00:00',
'',{'background-color':'#FF6F6F'});
for (var cnt=0;cnt<rowObject.length;cnt=cnt+1) {
jQuery(elem).setCell(options.rowId,cnt,'','state_inactive','');
jQuery(elem).setCell('"'+options.rowId+'"',cnt,'','state_inactive');
jQuery(elem).setCell('"'+options.rowId+'"',cnt,'5',
{'background-color':'#FF6F6F'},'');
}
} else {
for (var cnt=0;cnt<rowObject.length;cnt=cnt+1) {
jQuery(elem).setCell(options.rowId,cnt,'','state_active','');
}
}
<!-- dont modify, we simply added the class above-->
return cellvalue;
}
Run Code Online (Sandbox Code Playgroud) 我创建了一个包含一些字段的jqGrid,例如:
job_id,名称等
我要做的是使得当点击job_id列中的值时,它会将它们重定向到:
job.php?job_id =(他们点击的值)
我开始尝试使用以下作为我的colModel:
{ name:'job_id', index:'job_id', edittype:'select', formatter:'showlink',
formatoptions:{baseLinkUrl:'job.php'}, width:50, align:'center' }
Run Code Online (Sandbox Code Playgroud)
但是这会导致重定向到:
job.php?JOB_ID =(ROW_ID)
我做了一些搜索,发现这个软件的开源版本开发人员的帖子建议使用以下colModel和其他JS:
{ name:'job_id', index:'job_id', edittype:'select', formatter:'showlink',
formatoptions:{baseLinkUrl:'#'}, width:50, align:'center' }
loadComplete: function() {
var myGrid = $("#home_list");
var ids = myGrid.getDataIDs();
for (var i = 0, idCount = ids.length; i < idCount; i++) {
$("#"+ids[i]+" a",myGrid[0]).click(function(e) {
var hash=e.currentTarget.hash;// string like "#?id=0"
if (hash.substring(0,5) === '#?id=') {
var id = hash.substring(5,hash.length);
var text = this.textContent;
location.href="job.php?id="+text;
}
e.preventDefault();
});
}
}
Run Code Online (Sandbox Code Playgroud)
但这与IE不兼容.除此之外,当在jqGrid中显示大量行时,加载需要很长时间,比如5秒+ …
我想知道是否有更好的方法从服务器加载大型Json数据集.
我使用jqgrid作为loadonce:true.我需要一次加载大约1500条记录,我也不使用分页选项.有没有更好的方法来实现这一目标?先感谢您.
这是我的网格代码 -
$(function(){
$("#testgrid").jqGrid({
url:getGridUrl,
datatype: 'json',
mtype: 'GET',
height: 250,
colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'],
colModel:[
{name:'id',index:'id', width:60, sorttype:"int",search:false},
{name:'invdate',index:'invdate', width:90, sorttype:"date",search:false},
{name:'name',index:'name', width:100,search:false},
{name:'amount',index:'amount', width:80, align:"right",sorttype:"float"},
{name:'tax',index:'tax', width:80, align:"right",sorttype:"float",search:false},
{name:'total',index:'total', width:80,align:"right",sorttype:"float",search:false},
{name:'note',index:'note', width:150, sortable:false,search:false}
],
multiselect: true,
multiboxonly:true,
caption: "Manipulating Array Data",
pager: '#testgridpager',
//Auto load while scrolling
//scroll: true,
//to hide pager buttons
pgbuttons:false,
recordtext:'',
pgtext:'',
loadonce: true,
sortname: 'id',
sortorder: 'asc',
viewrecords: true,
multiselect: true,
jsonReader : {
root: "rows",
//page: "page",
//total: "total",
records: …Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中使用JQGrid.
如果JqGrid行基于列中的值,我想在这里更改颜色.
我能够改变列的颜色,但我不能改变行的背景颜色.
这是我用来改变行颜色的代码......
loadComplete: function (data) {
//RETRIEVE COLUMN INDEX : ISPRINTED
var isPrintColIndex = getGridColumnIndex(jQuery("#list10_d"), 'isPrinted');
//CHANGE COLOR OF PRINTED ARTICLES
//NOTE : JSON FORMATs ARE DIFFERENT SO ...HERE WE ARE ADDING CONDITION
if (data != null && data.rows != null) {
for (var index = 0; index < data.rows.length; index++) {
if (typeof (data.rows[index].id) === 'undefined') {
//LOAD BY JQGRID API ITSELF
if (data.rows[index].isPrinted == 'NO') {
if (data.rows[index].isPrinted == 'NO') {
jQuery("#list10_d").jqGrid(
'setCell', data.rows[index]._id_, "articleid",
"", …Run Code Online (Sandbox Code Playgroud) 我想动态更改网格列序列.例如,默认情况下,网格将以LoginId,FirstName和LastName序列加载.基于某些条件,我需要更改FirstName和LastName序列.
有什么方法可以做到这一点吗?
我尝试过这样做:
{name:'UserName',index:'UserName',width:82,sortable:false},
if(true)
{
{name:'FirstName',index:'FirstName',width:65,sortable:false},
{name:'LastName',index:'LastName',width:65,sortable:false},
}
else
{
{name:'LastName',index:'LastName',width:65,sortable:false},
{name:'FirstName',index:'FirstName',width:65,sortable:false},
}
Run Code Online (Sandbox Code Playgroud)
但是我无法完成这项工作.
我有一棵很深的树,对于用户来说,很难区分水平.是否可以为每个级别提供自定义css类?例如,首先是h1和粗体,第二个是粗体......
我想遍历网格对象中包含的所有数据.我的网格有一个包含子网格对象的定义,并以这种方式创建
var grid = $(gridID);
var pager = $(pagerID);
grid.jqGrid({
url: GetBaseWSUrl() + 'MyWs.asmx/MyMethod',
colNames: ['UMLT', 'FF', 'PC'],
colModel: [
{ name: 'Name', index: 'Name', width: 180, template: colTextTemplate },
{ name: 'AlertFF', index: 'AlertFF', width: 22, align: 'center', sortable: false, formatter: "checkbox", formatoptions: { disabled: false} },
{ name: 'AlertPC', index: 'AlertPC', width: 22, align: 'center', sortable: false, formatter: "checkbox", formatoptions: { disabled: false} }
],
[...]
subGrid: true,
subGridOptions: {
"plusicon": "ui-icon-triangle-1-e",
"minusicon": "ui-icon-triangle-1-s",
"openicon": "ui-icon-arrowreturn-1-e",
"reloadOnExpand": true, …Run Code Online (Sandbox Code Playgroud) 我正在计划生成整个网格数据的自定义XML,我需要遍历每一行,以及网格的每个单元格.
如下所示,可以轻松遍历行.我面临的唯一问题是遍历单元格,因为getRowData返回键值对而不是数组.
var ids = jQuery("#jgrid").jqGrid('getDataIDs');
//traverse the rows
for (var i = 0; i < ids.length; i++) {
var rowdata = $("#jgrid").getRowData(ids[i]);
var res = "";
// Traverse the cells which does not work
for (var j = 0; j < rowdata.length; j++) {
...
....logic to generate Xml element for each cell
}
}
Run Code Online (Sandbox Code Playgroud)
我不想硬编码列名,因为我打算将它用于所有网格.所以解决方案必须是Generic.
有任何想法吗 ?提前致谢.