用于List <map> </map>的XML表示的jQuery Grid

时间:2011-11-11 22:45:14

标签: jquery xml jqgrid grid

我的XML看起来像这样:

<executionResults>
    <results>
        <items>
        <item>
            <entries>
                <entry>
                    <key>name</key>
                    <value>user1</value>
                </entry>
                <entry>
                    <key>id</key>
                    <value>id1</value>
                </entry>
            </entries>
        </item>
        <item>
            <entries>
                <entry>
                    <key>name</key>
                    <value>user2</value>
                </entry>
                <entry>
                    <key>id</key>
                    <value>id2</value>
                </entry>
            </entries>
        </item>
    </items>
    </results>
</executionResults>

我想把它放到jQuery网格中。我试过看过这个: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data

尝试了这个:

function readIntoGrid(xmlData)
{
    $('#dataGrid').jqGrid({
    datastr: xmlData,
    datatype: 'xmlstring',
    colNames:['Key', 'Value'],
    colModel:[
      {name:'key', index:'entry->key', width:120},
      {name:'value', index:'entry->value', width:120, hidden:false}
    ],
    xmlReader:
    {
        root: 'items',
        row: 'item->entries',
        repeatitems: false
    },
    height:'100%',
    sortable:false,
    caption:'List of Maps test'
  });

}

但网格中没有任何内容。如何修改javascript以显示网格中的数据?

2 个答案:

答案 0 :(得分:2)

row的{​​{1}}属性存在语法错误。您应该使用xmlReader而不是row: 'item->entries'。您可以(但不是muss)将row: 'item>entries'修改为root: 'items'

您使用的root: 'executionResults>results>items'属性的语法(indexindex:'entry->key')似乎也是错误的。

请参阅the demo

答案 1 :(得分:1)

我假设上面给出的xml略有不同,这意味着所有“item”的“key”应该是相同的(它们将是列。因此列应该为每个“item”重复)。如下所示:

以下jquery适用于上面给出的xml。

function readIntoGrid(xmlData)
{
    $('#dataGrid1').jqGrid({
    datastr: xmlData,
    datatype: 'xmlstring',
    colNames:['Second', 'First'],
    colModel:[
        {name:'value',   width: 150 },  
        {name:'value', width: 150 },
    ],
    xmlReader:
    {
        root: 'items',
        row: 'item',
        repeatitems: true,
        cell:"value"
    },
    height:'100%',
    pager: '#pager3',
    rowNum: 10,
    sortable:false,
    caption:'Search results',
    viewrecords: true,
    page: 1
    });
}

查看xmlreader中的重复项和单元格值。