Я делаю то же самое, но с JSON. Позвольте мне попробовать заменить datatype, datastr и xmlReader на json, jsonstring & jsonreader и посмотреть. Благодарю. Это было очень полезно!

я есть XML-файл, имеющий такую структуру:

<products>
    <product>
        <id>P1</id>
        <name>PRODUCT 1</name>
        <accessories>
            <accessory>
                <id>acc_1</id>
                <name></name>
            </accessory>
            <accessory>
                <id>acc_2</id>
                <name></name>
            </accessory>
            <accessory>
                <id>acc_3</id>
                <name></name>
            </accessory>
        </accessories>
    </product>
    <product>
        <id>P2</id>
        <name>PRODUCT 2</name>
        <accessories>
            <accessory>
                <id>acc_1</id>
                <name>ACC 1</name>
            </accessory>
            <accessory>
                <id>acc_2</id>
                <name>ACC 2</name>
            </accessory>            
        </accessories>
    </product>
</products>

я хочу иметьвсе продукты в сетке используя jqGrid иаксессуары в подсетке для каждого продукта (со значком плюса).

Для этого я использую следующие js:

var myGrid = $("#prods").jqGrid({
    url: 'products.xml',
    datatype: "xml",
    colNames:["id", "Name"],
    colModel:[
        {name:"id",  key: true, index:"id", width:90, xmlmap:"id", sortable:true},
        {name:"Name", index:"Name", width:100, sortable:true, xmlmap:"name"}}
    ],
    width: 300,
    height:480,
    ignoreCase: true,
    viewrecords: true,
    loadonce: true,
    sortname: 'Name',
    sortorder: "asc",
    sortable: true,
    pager: "#pager",                    
    xmlReader: {
        root: "products",
        row: "product",
        repeatitems: false,
        id: "sku",
        subgrid: {
            root: "products>product>accessories",
            row: "accessory",
            repeatitems:false,
            id: "id"
        }                           
    },
    caption: "Products",
    subGrid: true,
    subGridRowExpanded: function(grid_id, row_id) {                     
        var subgrid_table_id;
        subgrid_table_id = grid_id + "_t";
        jQuery("#" + grid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table>");
        jQuery("#" + subgrid_table_id).jqGrid( {
            colNames: [ 'Id', 'Name'],
            colModel: [
                {name:"accid",index:"accid",width:80, xmlmap:"id"},
                {name:"accname",index:"accname",width:80, xmlmap:"name"}
            ],
            height: 50,
            rowNum:10,                      
        });
    }   
}); 

Это не показывает подзаписей. Я также попытался поместить тот же корень / строку в подсетку, что и родительская сетка, и использовал следующую ссылку для идентификатора: «продукты> продукт> аксессуары> аксессуар> идентификатор», но это не сработало.

Кто-нибудь уже нашел пример, который работает (на самом деле мой источник данных - один и тот же файл для сетки / подсетки), как я хочу.

Надеюсь, что это достаточно ясно, в противном случае, не стесняйтесь комментировать для запроса дополнительной информации.

Ответы на вопрос(1)

Ваш ответ на вопрос