2014-11-24 24 views
0

我想根據指南顯示組中的網格,但無法在jqGrid中加載數據。無法在jqGrid中顯示組

有人可以幫我嗎?

$("#Addresses").jqGrid({ 
    datatype: 'xmlstring', 
    datastr: xmlString.XmlToString(), 
    mtype: 'POST', 
    beforeRequest: function() { 
     //alert('beforeRequest'); 
    }, 
    loadError: function (xhr, status, error) { 
     $(this).HideBusy(); 
     // alert(status); 
     //  alert(error); 
     alert(xhr.responseText); 
    }, 
    onSelectRow: function (id) { 
     var Address = $("#Addresses").jqGrid('getCell', id, 'Address'); 
     SelectedAddresses.find("CRD1>row").each(function (index) { 
      if ($(this).find('Address').text() == Address) { 
       var v1 = $(this).XmlToString(); 
       var v2 = '<CRD1>' + v1 + '</CRD1>'; 
       $(this).SetValuesToControl("BusinessPartner #uxAddresses", $($.parseXML(v2))); 
      } 
     }); 
    }, 
    loadComplete: function (data) { 
     var top_rowid = $('#Addresses tr:nth-child(2)').attr('id'); 
     $("#Addresses").setSelection(top_rowid, true); 
     $(this).HideBusy(); 
    }, 
    ajaxGridOptions: { contentType: 'application/json; charset=utf-8' }, 
    xmlReader: { repeatitems: false, root: "CRD1", row: 'row' }, 
    colNames: ['Address', 'AdresType'], 
    colModel: [ 
         { name: 'Address', key: true, index: 'Address asc', hidden: false }, 
         { name: 'AdresType', index: 'AdresType', sortable: false, align: "left" } 
      ], 
    viewrecords: true, 
    gridview: true, 
    autowidth: true, 
    shrinkToFit: false, 
    height: 150, 
    width: 110, 
    grouping: true, 
    groupingView: { 
     groupField: 'AdresType', 
     groupColumnShow: false 
    }, 
    scrollOffset: 0 
}).jqGrid('navGrid', '', { edit: false, add: false, del: false, searchOnEnter: false, search: false }, {}, {}, {}, { multipleSearch: false }); 

我看到這個link,我已經注意到在groupField在兩個括號([]),其代表陣列,我假設它是使用了多個組。

如果我在方括號中指定FieldName(例如:groupField:['AdresType']),它會拋出jqGrid錯誤。

錯誤: 微軟JScript運行時錯誤:無法獲得屬性的值 '0':對象爲空或未定義

樣本數據:

<CRD1> 
<row> 
    <Address>HeadOffice</Address> 
    <CardCode>A0002</CardCode> 
    <City nil="true"/> 
    <County nil="true"/> 
    <Building/> 
    <AdresType>B</AdresType> 
</row> 
<row> 
    <Address>SiteOffice</Address> 
    <CardCode>A0002</CardCode> 
    <City nil="true"/> 
    <County nil="true"/> 
    <Building/> 
    <AdresType>B</AdresType> 
</row> 
    <row> 
    <Address>PuneOffice</Address> 
    <CardCode>A0002</CardCode> 
    <City nil="true"/> 
    <County nil="true"/> 
    <Building/> 
    <AdresType>S</AdresType> 
</row> 

+0

你包含的代碼包含很多矛盾。例如,你使用'datatype:'xmlstring''和'datastr:xmlString.XmlToString()'這意味着你可以在你的JavaScript程序中使用**輸入數據**,但是你使用'mtype:'POST' 'loadError,ajaxGridOptions:{contentType:'application/json; charset = utf-8'}'它只適用於遠程數據,比如'datatype:「xml」'另外'contentType:'application/json;對於XML數據,charset = utf-8'將完全錯誤。你應該從'colModel'中移除'index'屬性。 – Oleg 2014-11-24 09:31:29

+0

如果您在加載數據時遇到問題,您可以將問題文本附加到可用於再現問題的測試數據中,這會有所幫助。此外,如果出現任何錯誤,您應該使用'jquery.jqGrid.src.js'而不是'jquery.jqGrid.min.js',併發布您使用的jqGrid的版本和''jquery.jqGrid中的行號。 src.js' **發生錯誤。 – Oleg 2014-11-24 09:34:03

+0

那麼,數據類型是xmlstring和xmlString是jquery xml對象,所以我已經將jquery xml對象轉換爲xml字符串。你問我刪除索引,我不明白。 – Manish 2014-11-25 04:21:54

回答

0

你應該小心在groupingView中使用的數據類型。 The documentation包含具有Property,Type,DescriptionDefault列的表。 groupFieldgroupColumnShowType列都包含array。所以,正確的將是

groupingView: { 
    groupField: ['AdresType'], 
    groupColumnShow: [false] 
} 

,而不是

groupingView: { 
    groupField: 'AdresType', 
    groupColumnShow: false 
} 

修訂用法:有更多的一個問題:有在jqGrid的一個bug。 The lines

if(!locdata) { 
    self.jqGrid('groupingRender',grpdata,ts.p.colModel.length, ts.p.page, rn); 
} 
grpdata = null; 

應改爲

if(!locdata) { 
    self.jqGrid('groupingRender',grpdata,ts.p.colModel.length, ts.p.page, rn); 
    grpdata = null; 
} 

這個bug已經修復的jqGrid(見here)對2014年3月3日的主要代碼,但沒有jqGrid的釋放新發布的時間。我希望Tony能很快發佈新版本。

因此,您可以在jquery.jqGrid.src.js副本中進行相應的修改。或者,您可以使用除datatype: 'xmlstring'以外的任何其他數據類型。

+0

正如你所說,進行更改後,它會引發錯誤「錯誤:Microsoft JScript運行時錯誤:無法獲取屬性值'0':對象爲null或未定義」 – Manish 2014-11-26 07:56:04

+0

@Manish:請參閱** UPDATED **部分jqGrid的。 – Oleg 2014-11-26 08:32:53

+0

感謝Oleg,我對所有這些東西都很陌生,我看到了源代碼,但我不知道如何使用它,我發現有很多像基礎,常見,自定義,格式化程序,數據透視表,子網格等js文件。我不知道如何在一個js中編譯這個。你能指導我嗎? – Manish 2014-11-27 05:13:52