2012-02-23 44 views
0

我一直在努力獲得在jqGrid中工作的動態分組。數據通過jqGrid ajax數據調用正確排序並以XML格式返回。jqGrid分組返回「undefined」組標題

當我動態啓用特定列上的分組時,會顯示一個標題爲「未定義」的組?

我用盡了一切我能想到的,但沒有成功:(任何建議,將不勝感激

我的jqGrid JavScript代碼摘錄如下,(注:在這個例子中,網格列通過閱讀Ajax調用,並存儲在被稱爲「元數據」的變量。)

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> 

回答

0

問題解決了......我錯誤地設置了「ColModel」數組的「名稱」值。 (我使用列標題字符串而不是實際的數據庫表字段名稱。)