我需要将自定义 id 传递给 xmlreader 结构,以便 JQGrid 从 xml 数据中的节点组合中获取唯一标识行。我目前有这个版本工作
var feedXmlReaderOptions = {
root: "feed",
row: "entry",
repeatitems: false,
id: "d|clmNum,d|seqNum"
};
它连接 clmNum 和 seqNum xml 节点以构建行的唯一标识符。
顺便说一句,d| 指的是xml中使用的命名空间,所以请忽略它,它与这个问题无关。这里的问题是我需要 clmNum 和 seqNum 之间的分隔符,以便稍后在
ajaxRowOptions: {
beforeSend:...
}
事件,以便我可以动态构建需要发布到的 URL。发布到的 URL 显然侦听与网格行相同的 id,因此您可以看到连接。考虑到所使用的 CSS 选择器样式,我尝试的是 CSS 伪元素,通过它可以将自定义的、不存在的元素插入到选择器中:
d|clmNum:after { content: "_" },d|seqNum
d|clmNum.after('_'),d|seqNum
但它不起作用......jQuery 选择器抱怨 {,而 jquery .after() 就像 .before() 一样,似乎在选择器返回结果之后作为方法而不是参数内联工作。
那么,有人知道如何做到这一点吗?在创建 xml 期间返回连接键的替代方法不起作用,xml 不受我的控制。
谢谢一堆。serban@nj,美国
为澄清而添加:我的 XML 如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xml:base="http://localhost:8888/eClaimWS/olddispatch.svc/">
<title type="text">DispatchManualInfo</title>
<id>http://localhost:8888/eClaimWS/olddispatch.svc/DispatchManualInfo</id>
<updated>2012-05-21T18:13:44Z</updated>
<link rel="self" title="DispatchManualInfo" href="DispatchManualInfo" />
<entry>
<id>http://localhost:8888/eClaimWS/olddispatch.svc/DispatchManualInfo(clmNum='00C1400J0025',seqNum=1)</id>
<title type="text" />
<updated>2012-05-21T18:13:44Z</updated>
<author>
<name />
</author>
<link rel="edit" title="DispatchManualInfo" href="DispatchManualInfo(clmNum='00C1400J0025',seqNum=1)" />
<category term="eClaimDispatchProdModel.DispatchManualInfo" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<content type="application/xml">
<m:properties>
<d:busPhone />
<d:damDesc>cat</d:damDesc>
<d:vehColor />
<d:totLssInd />
<d:dispTransCtr m:type="Edm.Int32" m:null="true" />
<d:clmntCity />
<d:companyCd>01</d:companyCd>
<d:insZip>07470</d:insZip>
<d:adjZip>07701 565</d:adjZip>
<d:vehLocSt>NJ</d:vehLocSt>
<d:vehMake />
<d:lossTypeAbbr>WIND</d:lossTypeAbbr>
<d:homePhone>201-301-5411</d:homePhone>
<d:insLstNm>derti</d:insLstNm>
<d:city>wayne</d:city>
<d:adjLocalPhone>973-434-2482</d:adjLocalPhone>
<d:vehVin>UNK99999999999999</d:vehVin>
<d:adjName>Elaine Maniscalco</d:adjName>
<d:lstChgUser>Vendor</d:lstChgUser>
<d:seqNum m:type="Edm.Int32">1</d:seqNum>
<d:clmNum>00C1400J0025</d:clmNum>
</m:properties>
</content>
</entry>
......
</feed>
我不能使用 feed>entry>id 来配置 xmlreader id 参数,因为 id 节点太大并且作为网格的 rowid 会导致各种问题......我需要的是 id 节点的短版本,一些像 00C1400J0025_1。由于 clmNum 和 seqNum 在 XML 中也独立存在,我想将 xmlreader 与
id: "d|clmNum:after { content: "_" },d|seqNum"
那没有用。和
id: "d|clmNum,d|seqNum"
rowid 变为 00C1400J00251 并且我很难解析它,因为 clmNum 可以是任何长度的任何东西。