2012-01-28 57 views
0

我有一個XML數據庫,我想將它插入到flexigrid。由於flexigrids的ajax請求只讀取以某種方式格式化的文件,並且我無法修改數據庫,所以我想知道是否創建外部ajax請求,並將所有數據放入關聯數組中,以填充我的flexigrid;如果是的話,怎麼樣?我試圖創建一個表並將flexigrid作爲方法應用,但我獲得的網格不起作用(列未正確對齊,我無法對它們進行排序等)。 我的關聯數組如下:flexigrid如何與數組一起工作?

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

什麼編程語言使用? – Anwar 2012-01-28 15:02:25

+0

@Anwar我使用jQuery – pilettoturtle 2012-01-28 15:22:00

+0

除了使用jQuery,我的意思是你的服務器端語言? – Anwar 2012-01-28 16:46:38

回答

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發送幾個參數如下定義網址

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

它發送排序列,順序等等。在服務器端,您將獲取傳遞的參數以對行進行重新排序。

請查閱Documentation頁面瞭解更多信息。

更新:假設您有一個包含數據的數組(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))); 
+0

正如我已經在我的第一篇文章中所說,我知道flexigrid只能讀取我的數據庫,如果寫在某種方式,我不能解析我的XML文件:我只是想知道我是否可以做同樣的事情,但使用數組而不是XML。 – pilettoturtle 2012-01-28 17:25:02

+0

我很抱歉誤會,我更新了我的答案,希望它能回答你的問題。 – Anwar 2012-01-28 18:28:13

+0

在ajax請求中,我建立了我的數組,因爲您告訴我: rows.push({cell:[id, \t title, name]}); \t \t \t i ++; 當ajax請求完成時,我調用了這個函數,但是它沒有給出任何結果和錯誤...: $(「#table」)。flexAddData({total:i,page:1,rows:行}); }, – pilettoturtle 2012-01-29 18:59:59