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