0

我有一个 xml 数据库,我想将它插入到 flexigrid 中。由于 flexigrids 的 ajax 请求仅读取以某种方式格式化的文件,并且我无法修改我的数据库,我想知道是否发出外部 ajax 请求,并将所有数据放入关联数组中,我可以填充我的 flexigrid;如果是,如何?我试图创建一个表格并将 flexigrid 作为一种方法应用,但我获得的网格不起作用(列未正确对齐,我无法对它们进行排序等......)。我的关联数组如下:

    MyArray[i] = {'Name': name, 'Address': address, 'Category': category}
4

1 回答 1

0

Flexigrid 适用于 Json 格式或 XML 格式。对于这两种类型,它们必须采用某种格式。

XML 格式必须完全像这样:

<rows>
    <page>1</page>
    <total>2</total>
    <row id="reg1">
        <cell>reg1-cell1</cell>
        <cell>reg1-cell2</cell>
    </row>
    <row id="reg2">
        <cell>reg2-cell1</cell>
        <cell>reg2-cell2</cell>
    </row>
</rows>

在您的服务器端,您必须解析原始 XML 文件并重新生成这种特定的 XML 格式。

关于排序问题:单击其中一列后,flexigrid 将一些参数发送到定义的url,如下所示:

 $("#flex1").flexigrid({
                url: 'staff.php'
             });

它发送排好序的列、顺序等。在服务器端,您将获取传递的参数以重新排序您的行。

请查看文档页面以获取更多信息。

更新:假设您有一个保存数据的数组(Customers)。在这种情况下,我们将创建一个对象,该对象将保存您的数据,但采用 Json 格式,如下所示:

function formatCustomerResults(Customers){

     var rows = Array();

     for (i = 0; i < Customers.length; i++) {
         var item = Customers[i];

         rows.push({ cell: [item.CustomerId,
                            item.Name,
                            item.Phone,
                            item.Address]
     });
     }

     return {
         total: Customers.length,
         page: 1,
         rows: rows
     };
 }`

然后你会调用你的函数:

$("#FlexTable").flexAddData(formatCustomerResults(eval(data)));
于 2012-01-28T17:08:23.887 回答