【问题标题】:Grouping not displaying data correctly in jqGrid在 jqGrid 中分组未正确显示数据
【发布时间】:2015-02-16 11:47:19
【问题描述】:

我正在尝试使用 jqGrid 在组中显示数据。对于较少的条目,它工作正常。但是随着行数的增加。它为同名创建多个组。

这是我的 jqGrid sn-p。

var v = xmlString.XmlToString();
	$("#Addresses").jqGrid({
		datatype: 'xmlstring',
		datastr: v,
		mtype: 'GET',
		
		beforeRequest: function () {
			//alert('beforeRequest');
		},
		loadError: function (xhr, status, error) {
			$(this).HideBusy();
			//   alert(status);
			//     alert(error);
			alert(xhr.responseText);
		},

		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: "BPAddresses", row: 'row' },
		colNames: ['Address', 'AdresType'],
		colModel: [
					{ name: 'AddressName', index: 'AddressName', sortable: false },
					{ name: 'AddressType', index: 'AddressType', sortable: false, align: "left", formatter: FormatBPAddress, unformat: UnFormatBPAddress }
			   ],
		viewrecords: true,
		gridview: true,
		autowidth: true,
		shrinkToFit: false,
		height: 150,
		width: 110,
		rowNum: 100,
		beforeSelectRow: function (id, e) {
			//set contact person values back to xml
			var Name = $("#Addresses").jqGrid('getCell', id, 'AddressName');
			selectedContactID = Name;
			var addType = $("#Addresses").jqGrid('getCell', id, 'AddressType');
			selectedAddType = addType;
			//debugger;
			$("#gbox_Addresses").block({ message: null });
			return true;
		},
		onSelectRow: function (id) {
			var Address = $("#Addresses").jqGrid('getCell', id, 'AddressName');
			SelectedAddresses.find("BPAddresses>row").each(function (index) {
				if ($(this).find('AddressName').text() == Address) {
					var v1 = $(this).XmlToString();
					var v2 = '<BPAddresses>' + v1 + '</BPAddresses>';
					var $parsedXML = $($.parseXML(v2));
					$(this).SetValuesToControl("BusinessPartner #uxAddresses", $parsedXML, dataMember);
					$("#uxUpdateAdd").removeAttr("disabled");
					$("#uxCancelAdd").removeAttr("disabled");
				}
			});
		},
		grouping: true,
		groupingView: {
			groupField: ['AddressType'],
			groupColumnShow: [false],
			groupCollapse: true,
			plusicon: 'ui-icon-triangle-1-e',
			minusicon: 'ui-icon-triangle-1-s',
			openicon: 'ui-icon-arrowreturn-1-e'
		},
		scrollOffset: 0
	}).jqGrid('navGrid', '', { edit: false, add: false, del: false, searchOnEnter: false, search: false }, {}, {}, {}, { multipleSearch: false });
	

//this is my xml code.
<BPAddresses>
			<row>
				<AddressName>a1</AddressName>
				<Street>a1</Street>
				<Country>IN</Country>
				<AddressType>bo_BillTo</AddressType>
				<StreetNo>a1</StreetNo>
				<BPCode>A2</BPCode>
				<RowNum>0</RowNum>
			</row>
			<row>
				<AddressName>a2</AddressName>
				<Street>a2</Street>
				<Country>IN</Country>
				<AddressType>bo_BillTo</AddressType>
				<StreetNo>a2</StreetNo>
				<BPCode>A2</BPCode>
				<RowNum>1</RowNum>
			</row>
			<row>
				<AddressName>a3</AddressName>
				<Street>a3</Street>
				<Country>IN</Country>
				<AddressType>bo_BillTo</AddressType>
				<StreetNo>a3</StreetNo>
				<BPCode>A2</BPCode>
				<RowNum>2</RowNum>
			</row>
			<row>
				<AddressName>sh1</AddressName>
				<Country>IN</Country>
				<AddressType>bo_ShipTo</AddressType>
				<BPCode>A2</BPCode>
				<RowNum>3</RowNum>
			</row>
			<row>
				<AddressName>sh2</AddressName>
				<Country>IN</Country>
				<AddressType>bo_ShipTo</AddressType>
				<BPCode>A2</BPCode>
				<RowNum>4</RowNum>
			</row>
			<row>
				<AddressName>Define New</AddressName>
				<Street/>
				<Block/>
				<ZipCode/>
				<City/>
				<County/>
				<Country/>
				<State/>
				<BuildingFloorRoom/>
				<AddressType>bo_ShipTo</AddressType>
				<StreetNo/>
				<BPCode/>
				<RowNum/>
				<GlobalLocationNumber/>
			</row>
			<row>
				<AddressName>Define New</AddressName>
				<Street/>
				<Block/>
				<ZipCode/>
				<City/>
				<County/>
				<Country/>
				<State/>
				<BuildingFloorRoom/>
				<AddressType>bo_BillTo</AddressType>
				<StreetNo/>
				<BPCode/>
				<RowNum/>
				<GlobalLocationNumber/>
			</row>
		</BPAddresses>

在上面的 xml 中只有两个组,即:Bill To & Ship To。 它在我的网格中显示 3 组 Bill To、Ship To 和另外一个 Bill To。

有人可以帮我吗?

PFA:

【问题讨论】:

    标签: javascript jquery jqgrid


    【解决方案1】:

    如果您使用groupField: ['AddressType'],则输入数据必须按AddressType 排序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 1970-01-01
      相关资源
      最近更新 更多