0

xml データベースがあり、それをフレキシグリッドに挿入したいと考えています。フレキシグリッドの ajax リクエストは、特定の形式でフォーマットされたファイルのみを読み取り、データベースを変更できないため、外部の ajax リクエストを作成し、すべてのデータを連想配列に入れてフレキシグリッドを埋めることができるかどうかを知りたいです。はいの場合、どのように?テーブルを作成し、方法としてフレキシグリッドを適用しようとしましたが、取得したグリッドが機能しません (列が正しく配置されない、ソートできないなど...)。私の連想配列は次のとおりです。

    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 形式を再生成する必要があります。

並べ替えの問題について: 列の 1 つをクリックした後、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 に答える