jqGrid分组返回“未定义”组标题

时间:2012-02-23 12:09:55

标签: jqgrid grouping

我一直在努力让jqGrid中的动态分组工作。数据正在通过jqGrid ajax数据调用以XML格式正确排序和返回。

当我在特定列上动态启用分组时,会显示一个标题为“未定义”的组?

我已经尝试了我能想到的一切,但没有成功:(任何建议都会非常感激。

我的jqGrid JavScript代码摘录如下所示(注意:在此示例中,网格列通过ajax调用读取并存储在名为“MetaData”的变量中。)

 var XmlFile = 'CC1533C4-239E-4CF7-9D3E-03F87E75F445';
 var SessionID = 'B656C7A5198E472F901399FF81196C14';

 var InitGridUrl = '/base/_resource/Widgets/jqGrid/initgrid.php' + SessionID + XmlFile;  // This web service will return the Report Table Metadata

 ObjectCount = function(_Object)
 {
  try
  {
   var count = 0;
   for (var property in _Object)
   {
    if (_Object.hasOwnProperty(property)) {count++;}
   }
   return count;
  }
  catch (e) {}

  return -1;
 };

 jQuery(document).ready(function()
 {
  jQuery.getJSON(InitGridUrl, function(MetaData)  // Read grid column info into "MetaData" via an ajax call
  {
   var colNames=new Array(), colModel=new Array();

   var LastModified = new Date(MetaData['LastModified'] * 1000);

   jQuery.each(MetaData['Structure'], function(FieldTypeId, Field)
   {
    colNames.push(Field['Name']);
    if (colNames.length == 1) colModel.push({name:Field['Name'], index:Field['Field'], width:'35', align:Field['Align'], sortable:false, search:false, key:true});
    else
    {
     colModel.push({name:Field['Name'], index:Field['Field'], align:Field['Align'], sortable:true});
     jQuery('#selectgroup').append(jQuery('<option></option>').attr('value', Field['Field']).text(Field['Name']));
    }
   });

   jQuery("#grid").jqGrid
   ({
     url: 'http://localhost/base/_resource/Widgets/jqGrid/getdata.php',
     datatype: 'xml',
     mtype: 'GET',
     colNames:colNames,
     colModel :colModel,
     pager: '#pager',
     rowNum:20,
     rowList:[10,20,30,40,50],
     sortname: colModel[0]['index'],
     sortorder: 'asc',
     viewrecords: true,
     gridview: true,
     caption: MetaData['Title'] + ' [Last Modified: ' + LastModified.toLocaleString().split(' GMT')[0] + ']',
     altclass: 'AltRowClass',
     altRows: true,
     height: 400,
     width:"auto",
     autowidth: true,
     shrinkToFit: true,
     rownumbers: false,
     grouping: false,
     groupingView : {groupField : [colModel[0]['index']], groupColumnShow : [true], groupText : ['<b>{0} - {1} Item(s)</b>'], groupCollapse : false, groupOrder: ['asc'], groupSummary : [false], groupDataSorted : true}
   });

   jQuery("#grid").jqGrid('navGrid','#pager', {edit:false,add:false,del:false}, {}, {}, {}, {multipleSearch:true, multipleGroup:true, showQuery:true});

   jQuery("#selectgroup").change(function()
   {
    var vl = jQuery(this).val();
    if(vl)
    {
     if(vl == "clear") {jQuery("#grid").jqGrid('groupingRemove',true);}
     else {jQuery("#grid").jqGrid('groupingGroupBy',vl);}
    }
   });

   jQuery('td#refresh_grid').after(jQuery('#selectgroup'));  // locate grouping droptdown list in jqGrid footer
   jQuery('#selectgroup').css('visibility', 'visible');
  });
 });

以下是(澳大利亚)州列分组后返回的排序数据示例,即“ACT”,“FIXME”,“NSW”

<?xml version='1.0' encoding='utf-8'?>
<rows>
 <page>1</page>
 <total>9</total>
 <records>171</records>
 <row id="1"><cell><![CDATA[1]]></cell><cell><![CDATA[PRV12002]]></cell><cell><![CDATA[Australian National University]]></cell><cell><![CDATA[Australian University]]></cell><cell><![CDATA[Listed Company]]></cell><cell><![CDATA[ACT]]></cell><cell><![CDATA[Yes]]></cell><cell><![CDATA[2012-12-31T00:00:00]]></cell><cell><![CDATA[Active]]></cell></row>
 <row id="2"><cell><![CDATA[2]]></cell><cell><![CDATA[PRV12003]]></cell><cell><![CDATA[University of Canberra]]></cell><cell><![CDATA[Australian University]]></cell><cell><![CDATA[Statutory body]]></cell><cell><![CDATA[ACT]]></cell><cell><![CDATA[Yes]]></cell><cell><![CDATA[2015-10-31T00:00:00]]></cell><cell><![CDATA[Active]]></cell></row>
 <row id="3"><cell><![CDATA[3]]></cell><cell><![CDATA[PRV12004]]></cell><cell><![CDATA[Canberra Institute of Technology]]></cell><cell><![CDATA[Higher Education Provider]]></cell><cell><![CDATA[]]></cell><cell><![CDATA[ACT]]></cell><cell><![CDATA[No]]></cell><cell><![CDATA[2013-12-31T00:00:00]]></cell><cell><![CDATA[Active]]></cell></row>
 <row id="4"><cell><![CDATA[4]]></cell><cell><![CDATA[PRV12172]]></cell><cell><![CDATA[Heriot-Watt University Pty Limited]]></cell><cell><![CDATA[Higher Education Provider]]></cell><cell><![CDATA[]]></cell><cell><![CDATA[ACT]]></cell><cell><![CDATA[No]]></cell><cell><![CDATA[2011-11-30T00:00:00]]></cell><cell><![CDATA[Active]]></cell></row>
 <row id="15"><cell><![CDATA[5]]></cell><cell><![CDATA[PRV12178]]></cell><cell><![CDATA[Williams Business College Ltd]]></cell><cell><![CDATA[Higher Education Provider]]></cell><cell><![CDATA[Listed Company]]></cell><cell><![CDATA[FIXME]]></cell><cell><![CDATA[No]]></cell><cell><![CDATA[1900-01-01T00:00:00]]></cell><cell><![CDATA[Active]]></cell></row>
 <row id="16"><cell><![CDATA[6]]></cell><cell><![CDATA[PRV12182]]></cell><cell><![CDATA[The Institute of Internal Auditors-Australia]]></cell><cell><![CDATA[Higher Education Provider]]></cell><cell><![CDATA[Listed Company]]></cell><cell><![CDATA[FIXME]]></cell><cell><![CDATA[No]]></cell><cell><![CDATA[1900-01-01T00:00:00]]></cell><cell><![CDATA[Active]]></cell></row>
 <row id="17"><cell><![CDATA[7]]></cell><cell><![CDATA[PRV12186]]></cell><cell><![CDATA[Navitas Bundoora Pty Ltd]]></cell><cell><![CDATA[Higher Education Provider]]></cell><cell><![CDATA[Listed Company]]></cell><cell><![CDATA[FIXME]]></cell><cell><![CDATA[No]]></cell><cell><![CDATA[1900-01-01T00:00:00]]></cell><cell><![CDATA[Active]]></cell></row>
 <row id="18"><cell><![CDATA[8]]></cell><cell><![CDATA[PRV12187]]></cell><cell><![CDATA[Australian College of the Arts Pty Ltd]]></cell><cell><![CDATA[Higher Education Provider]]></cell><cell><![CDATA[Listed Company]]></cell><cell><![CDATA[FIXME]]></cell><cell><![CDATA[No]]></cell><cell><![CDATA[1900-01-01T00:00:00]]></cell><cell><![CDATA[Active]]></cell></row>
 <row id="19"><cell><![CDATA[9]]></cell><cell><![CDATA[PRV12188]]></cell><cell><![CDATA[Investment Banking Institute Business School Pty Ltd]]></cell><cell><![CDATA[Higher Education Provider]]></cell><cell><![CDATA[Listed Company]]></cell><cell><![CDATA[FIXME]]></cell><cell><![CDATA[No]]></cell><cell><![CDATA[1900-01-01T00:00:00]]></cell><cell><![CDATA[Active]]></cell></row>
 <row id="20"><cell><![CDATA[10]]></cell><cell><![CDATA[PRV12204]]></cell><cell><![CDATA[Australian Institute of Business Administration Pty Ltd]]></cell><cell><![CDATA[Higher Education Provider]]></cell><cell><![CDATA[Listed Company]]></cell><cell><![CDATA[FIXME]]></cell><cell><![CDATA[No]]></cell><cell><![CDATA[1900-01-01T00:00:00]]></cell><cell><![CDATA[Active]]></cell></row>
 <row id="21"><cell><![CDATA[11]]></cell><cell><![CDATA[PRV12206]]></cell><cell><![CDATA[Entrepreneurship Institute Australia Pty Ltd]]></cell><cell><![CDATA[Higher Education Provider]]></cell><cell><![CDATA[Listed Company]]></cell><cell><![CDATA[FIXME]]></cell><cell><![CDATA[No]]></cell><cell><![CDATA[1900-01-01T00:00:00]]></cell><cell><![CDATA[Active]]></cell></row>
 <row id="22"><cell><![CDATA[12]]></cell><cell><![CDATA[PRV12207]]></cell><cell><![CDATA[Tourism Institute Australia Pty Ltd]]></cell><cell><![CDATA[Higher Education Provider]]></cell><cell><![CDATA[Listed Company]]></cell><cell><![CDATA[FIXME]]></cell><cell><![CDATA[No]]></cell><cell><![CDATA[1900-01-01T00:00:00]]></cell><cell><![CDATA[Active]]></cell></row>
 <row id="73"><cell><![CDATA[13]]></cell><cell><![CDATA[PRV12005]]></cell><cell><![CDATA[Academy of Information Technology Pty Ltd]]></cell><cell><![CDATA[Higher Education Provider]]></cell><cell><![CDATA[Private Company]]></cell><cell><![CDATA[NSW]]></cell><cell><![CDATA[No]]></cell><cell><![CDATA[2015-03-31T00:00:00]]></cell><cell><![CDATA[Active]]></cell></row>
 <row id="74"><cell><![CDATA[14]]></cell><cell><![CDATA[PRV12006]]></cell><cell><![CDATA[Alphacrucis College Limited]]></cell><cell><![CDATA[Higher Education Provider]]></cell><cell><![CDATA[]]></cell><cell><![CDATA[NSW]]></cell><cell><![CDATA[No]]></cell><cell><![CDATA[2013-05-27T00:00:00]]></cell><cell><![CDATA[Active]]></cell></row>
 <row id="75"><cell><![CDATA[15]]></cell><cell><![CDATA[PRV12007]]></cell><cell><![CDATA[Asia Pacific International College Pty Ltd]]></cell><cell><![CDATA[Higher Education Provider]]></cell><cell><![CDATA[]]></cell><cell><![CDATA[NSW]]></cell><cell><![CDATA[No]]></cell><cell><![CDATA[2014-06-30T00:00:00]]></cell><cell><![CDATA[Active]]></cell></row>
 <row id="76"><cell><![CDATA[16]]></cell><cell><![CDATA[PRV12008]]></cell><cell><![CDATA[Australian Catholic University Limited]]></cell><cell><![CDATA[Australian University]]></cell><cell><![CDATA[Company limited by guarantee]]></cell><cell><![CDATA[NSW]]></cell><cell><![CDATA[Yes]]></cell><cell><![CDATA[2015-08-31T00:00:00]]></cell><cell><![CDATA[Active]]></cell></row>
 <row id="77"><cell><![CDATA[17]]></cell><cell><![CDATA[PRV12009]]></cell><cell><![CDATA[Australian College of Applied Psychology Pty Limited]]></cell><cell><![CDATA[Higher Education Provider]]></cell><cell><![CDATA[]]></cell><cell><![CDATA[NSW]]></cell><cell><![CDATA[No]]></cell><cell><![CDATA[2016-06-30T00:00:00]]></cell><cell><![CDATA[Active]]></cell></row>
 <row id="78"><cell><![CDATA[18]]></cell><cell><![CDATA[PRV12010]]></cell><cell><![CDATA[Australian College of Theology Limited]]></cell><cell><![CDATA[Higher Education Provider]]></cell><cell><![CDATA[Listed Company]]></cell><cell><![CDATA[NSW]]></cell><cell><![CDATA[Yes (Partial)]]></cell><cell><![CDATA[2015-04-30T00:00:00]]></cell><cell><![CDATA[Active]]></cell></row>
 <row id="79"><cell><![CDATA[19]]></cell><cell><![CDATA[PRV12011]]></cell><cell><![CDATA[Australian Film, Television and Radio School]]></cell><cell><![CDATA[Higher Education Provider]]></cell><cell><![CDATA[]]></cell><cell><![CDATA[NSW]]></cell><cell><![CDATA[Yes]]></cell><cell><![CDATA[2012-08-30T00:00:00]]></cell><cell><![CDATA[Active]]></cell></row>
 <row id="80"><cell><![CDATA[20]]></cell><cell><![CDATA[PRV12012]]></cell><cell><![CDATA[Australian Institute of Business and Management Pty Ltd]]></cell><cell><![CDATA[Higher Education Provider]]></cell><cell><![CDATA[]]></cell><cell><![CDATA[NSW]]></cell><cell><![CDATA[No]]></cell><cell><![CDATA[2014-12-20T00:00:00]]></cell><cell><![CDATA[Active]]></cell></row>
</rows>

1 个答案:

答案 0 :(得分:0)

问题解决了......“ColModel”数组的“name”值设置错误。 (我使用了列标题字符串而不是实际的数据库表字段名。)

相关问题