1

我正在为 jqgrid 传递丰富的嵌套域对象以显示为平面数据行。我这样做是因为我想避免为我的应用程序中的 100++ 个数据网格中的每一个创建一个平面 java 数据传输对象。示例行数据:

<record>
  <brand>
    <description>The Brand</description> 
    <brandId>305</brandId> 
  </brand>
  <description>The description</description> 
  <recordId>110</recordId>  
</record>

不幸的是,这会在两个元素之间产生命名冲突:品牌描述列显示正常,但根描述列显示两个“描述”连接(“TheBrandThe description”)。这是我的列模型:

colModel :
    {name:'brand>description', index:"brand>brandId",
        xmlmap:"brand>description",width:200},
    {name:'description', index:'description', xmlmap:"description",
        editable:true, edittype:'text', width:500} 
]

我应该如何修改列模型,使两个“描述”之间没有冲突?我尝试使用 xmlmap 但没有任何改变。谢谢!

4

1 回答 1

0

你应该做的是以下

  1. 您应该从xmlmap符号>开始指定从 XML 项的根开始的路径。
  2. 您应该使用与属性名称相对应的name属性值。colModel例如name: 'brand'name: "brand_description"代替name:'brand>description'
  3. 您最好不要index为列描述指定任何属性。在这种情况下,jqGrid 将在内部将name属性的值复制到index.

演示显示了结果。它用

colNames: ["brandId", "brand description", "description", "recordId"],
colModel: [
    { name: "brand_brandId", xmlmap: ">brand>brandId", key: true, width: 100},
    { name: "brand_description", xmlmap: ">brand>description", width: 200},
    { name: "description", xmlmap: ">description", editable: true, width: 500},
    { name: "recordId", width: 100}
]

key: true我在定义中添加了额外的内容,">brand>brandId"因为我认为每个项目的值都是唯一的,并且可以用作 rowid。您可以选择id其他原因的行。

于 2013-06-12T06:22:25.307 回答