如何使用jquery绑定未知字段的网格?

时间:2012-06-21 10:03:14

标签: jquery jquery-ui jquery-plugins

我正在使用 jqwidgets 绑定网格,如下所述:

var url = "sampledata/customers.xml";
var parentsLength = $("#jqxWidget").parents().length;
if (parentsLength > 3) {
    url = 'sampledata/customers.xml';
}

// prepare the data
var source = {
    datatype: "xml",
    datafields: [
        { name: 'CompanyName', map: 'm\\:properties>d\\:CompanyName' },
        { name: 'ContactName', map: 'm\\:properties>d\\:ContactName' },
        { name: 'ContactTitle', map: 'm\\:properties>d\\:ContactTitle' },
        { name: 'City', map: 'm\\:properties>d\\:City' },
        { name: 'PostalCode', map: 'm\\:properties>d\\:PostalCode' },
        { name: 'Country', map: 'm\\:properties>d\\:Country' }
    ],
    root: "entry",
    record: "content",
    id: 'm\\:properties>d\\:CustomerID',
    url: url
};

// Create jqxGrid
$("#jqxgrid").jqxGrid(
{
    width: 670,
    source: source,
    theme: theme,
    columnsresize: true,
    columns: [
        { text: 'Company Name', datafield: 'CompanyName', width: 250 },
        { text: 'Contact Name', datafield: 'ContactName', width: 150 },
        { text: 'Contact Title', datafield: 'ContactTitle', width: 180 },
        { text: 'City', datafield: 'City', width: 120 },
        { text: 'Postal Code', datafield: 'PostalCode', width: 90 },
        { text: 'Country', datafield: 'Country', width: 100 }
    ]
});

但现在我的动态网格中包含未知的列和行。我怎么绑?我正在调用Web服务来获取XML格式的网格数据。

1 个答案:

答案 0 :(得分:0)

您可以使用jqxDataAdapter插件并将源对象作为参数传递给数据适配器。然后将Grid的source属性设置为指向dataAdapter,而不是直接指向源。在jqxDataAdapter的loadComplete函数调用中,构建columns数组并将其传递给Grid。

类似的东西:

$("#jqxgrid").jqxGrid({columns: myColumnsArray});