JQGrid:colmodel名称冲突

时间:2013-06-12 03:26:34

标签: jquery jqgrid

我正在为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} 
]

我应该如何修改列模型,以便2'描述'之间没有冲突?我尝试使用xmlmap但没有改变。谢谢!

1 个答案:

答案 0 :(得分:0)

您应该做的是以下

  1. 您应该使用xmlmap符号启动>以指定XML项目根目录的路径。
  2. 您应该使用name colModel属性的值,这些属性对应于属性名称。例如name: 'brand'name: "brand_description"而不是name:'brand>description'
  3. 您最好不要为列描述指定任何index属性。在jqGrid内部将name属性的值复制到index的情况下。
  4. The demo显示结果。它使用

    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行。