2

ここで尋ねられたローカル js var の質問から下線データが更新された後にツールバー フィルターを再適用する方法についての私の質問の間に、Oleg は私に解決策を提供しました: 1 datatype:"local" と data:localvar の組み合わせを使用します。

今、私は1週間後に解決できなかった別の問題に直面しています。

ローカル データソースを使用する場合の Jqgrid wiki によると、デフォルトの localreader は次のようになります。

The initial configuration of the localReader is the same as those from jsonReader

localReader = {
   root: "rows",
   page: "page",
   total: "total",
   records: "records",
   repeatitems: false,
   cell: "cell",
   id: "id",
   userdata: "userdata",
   subgrid: {root:"rows", repeatitems: true, cell:"cell"}
}

そうではないことがわかりました。dataype:"local" を使用して見つけることができるすべての例では、次のように、js オブジェクトの代わりに常にストレート js 配列を使用するためです。

var mydata = [       
{id:"1",invdate:"2007-10-01",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},   
   {id:"2",invdate:"2007-10-02",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, 
{id:"3",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}];

デフォルトのlocalReader(repeatitemsをtrueに設定)を使用して処理しようとしました

var locObj = {"rows":[
       {"id":0,"cell":["val1","val2","val3"]},
       {"id":1,"cell":["val1","val2","val3"]}
        ],
  "page":"1",
  "total":"1",
  "records":"2"
}

datatype:"local"、data:locObj を使用

addlocaldata 関数の配列チェックに合格しないため、これは機能しません。オプションを datatype:"local", data:locObj.rows に変更すると

正しい行数のグリッドを取得しましたが、各セルには空の値があります。これは、addlocaldata 関数が locObj.rows のような形式の配列を処理できないためだと思います。

カスタマイズされた localreader を使用して (クライアント側で配列を再作成する代わりに) datatype:"local" を持つ json オブジェクト (または文字列) を実際に処理する方法はありますか?

どんな助けでも大歓迎です。

キャスビー

4

1 に答える 1

4

あなたがする必要があるのはただの使用法です

data: locObj.rows,
localReader: {repeatitems: true}

対応するデモを参照してください。

于 2012-10-26T06:17:15.343 に答える