Группировка jqGrid, возвращающая «неопределенные» заголовки группы - PullRequest
0 голосов
/ 23 февраля 2012

Я изо всех сил пытался заставить динамическую группировку работать в jqGrid.Данные правильно сортируются и возвращаются в формате XML с помощью вызова данных jjGrid ajax.

Когда я динамически включаю группирование по определенному столбцу, отображается одна группа с заголовком «undefined»?

Я перепробовал все, что мог придумать, но безуспешно :( Любые предложения будут с благодарностью приняты.

Мой фрагмент кода 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 голосов
/ 24 февраля 2012

Проблема решена ... У меня неправильно задано значение "name" массива "ColModel".(Я использовал строку заголовка столбца вместо фактического имени поля таблицы базы данных.)

...