【发布时间】:2015-09-05 18:18:06
【问题描述】:
我有一个表单,它以 id 作为输入,并且基于 xml 文件中存在此 id,它必须使用来自同一 xml 文件的相关信息填充 jqgrid 表。请帮忙。我的 xml 代码看起来像
<EmpDetails>
<Detail detailid="1">
<empid>12345</empid>
<Transaction transid="11">
<date>09-01-2015</date>
<type>Credit</type>
<amount>15000</amount>
</Transaction>
<Transaction transid="12">
<date>09-02-2015</date>
<type>Debit</type>
<amount>200</amount>
</Transaction>
<Transaction transid="13">
<date>09-03-2015</date>
<type>Debit</type>
</Transaction>
</Detail>
<Detail detailid="2">
<empid>67890</empid>
<Transaction transid="21">
<date>09-02-2015</date>
<type>Debit</type>
<amount>1200</amount>
</Transaction>
</Detail>
</EmpDetails>
而javascript代码是
$(document).ready(function () {
$('#button1').click(function () {
var textname = $('#name').val();
var textempid = $('#empid').val();
$.ajax({
type: "GET",
url: "DataScripts/Data1.xml",
cache: false,
dataType: "xml",
success: function (xml) {
$(xml).find('Detail').each(function () {
var empid = $(this).find("empid").text();
var detailid = $(this).attr('detailid');
if (textempid==empid)
{
populategrid(detailid);
}
});
}
});
function populategrid(detailid)
{
$('#GridTable').jqGrid({
url: 'DataScripts/Data1.xml',
datatype: "xml",
colModel: [
{label: 'date', name: 'date', key: false, width: 75, xmlmap: 'date'},
{label: 'type', name: 'type', sortable: true, xmlmap: 'type'},
{label: 'amount', name: 'amount', sortable: true, xmlmap: 'amount'}
],
xmlReader: {
root: "EmpDetails",
row: "Detail>Transaction",
repeatitems: false,
id: "[detailid]"
},
width: 780,
height: 250,
rowNum: 5,
pager: "#jqGridPager",
}).navGrid('#jqGridPager', { edit: false, add: false, del: false });
return;
}
当我执行此操作时,我看到另一个 empid 的交易详细信息以及输入的 empid 的交易信息也显示在网格上。
提前致谢
【问题讨论】:
-
您使用
textname == name && textempid==empid搜索<Detail>的特定"name"和"empid"节点,但我没有看到任何name节点(仅empid)<Detail>。让我们你找到一些<Detail>节点然后我不清楚你为什么不将节点转发到populategrid以允许jqGrid 只读特定的Transaction(找到)节点?您可以使用 jqGrid 的datastr: detailNade, datatype: "xmlstring"选项。如果信息对您来说还不够,那么我可以发布更多实施细节。 -
谢谢@Oleg。请忽略 (textname==name)。我现在已经编辑了我的代码。我只用empid验证。您能否发布有关如何将详细节点转发到网格的更多详细信息。
标签: javascript jquery xml jqgrid