flexigrid如何使用数组?

时间:2012-01-28 14:45:39

标签: jquery arrays flexigrid

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

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

1 个答案:

答案 0 :(得分: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'
             });

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

请查看Documentation页面了解详情。

更新:假设您有一个包含数据的阵列(客户)。在这种情况下,我们将创建一个对象,它将以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)));