2012-04-17 22 views
1

Listgridレコードを並べ替える必要があります。 私は、次のコードを使用していますが、それは次のコード行で例外をスローするたび:RecordListメソッドが動作しない

rs.removeAt(idx); 

例外:: - ここ

self.removeAt(pos) is not a function 

コードです:

TransferImgButton upFirst = new TransferImgButton(TransferImgButton.UP_FIRST); 
upFirst.addClickHandler(new ClickHandler() { 
    public void onClick(ClickEvent event) { 
     ListGridRecord selectedRecord = myList2.getSelectedRecord(); 
     if(selectedRecord != null) { 
      int idx = myList2.getRecordIndex(selectedRecord); 
      if(idx > 0) { 
      RecordList rs = myList2.getRecordList(); 
      rs.removeAt(idx); 
      rs.addAt(selectedRecord, 0); 
      } 
     } 
    } 
}); 
+0

あなたは** ListGridのために**データソース**を使用しています**? – RAS

+0

はい私は私のリストグリッドのためのデータソースを使用しています。これを除いて、すべてのコードは正常に動作しています。 – Dhruva

+0

私の答えは特に言わない。それは全体的なものでした。 –

答えて

0

古いリソースのように聞こえます.GWTコンパイルを実行し、テストする前にブラウザのキャッシュをクリアすることをお勧めします。

使用しているSmartGwtのバージョンはどれですか?

ナイトリービルドまたは2.4を使用 ここにはlinkがあります。あなたはListGridためデータソースを使用している場合

+0

私はブラウザキャッシュを消去し、GWTコンパイルも実行しました。しかし、この問題に属していません。そのメソッドにバグがあり、正しく動作していません(私はsmartGWTの2.4バージョンを使用しています)。私自身はそれを行うための他の選択肢を見つけました。 – Dhruva

1

@dhruva、あなたはデータソースListGridからのデータを追加または削除することを使用する必要があります。個人的には、具体的な条件や状況がない限り、RecordListにデータを追加または削除することは好ましくありません。あなたは次のことを試すことができます。

grid.getDataSource().addData(record); 
grid.getDataSource().removeData(record); 

OR

grid.addData(record); 
grid.removeData(record); 
+0

レコード配列内のすべてのレコードを取得してから、レコードを並べ替えてListgridにリセットします。この方法でリストグリッドデータを並べ替えます。 – Dhruva

+0

@Dhruva、あなたはオブジェクトのリストを最初に並べ替えることができますし、次にそれを使ってレコードを作ります。グリッドのレコードを動的に並べ替える必要がある場合でも、このアプローチはうまくいきます。 – RAS

+0

RAS:私はレコードをターゲットレコードと入れ替える単純なロジックを適用しました。複雑さはそれほど一般的ではありません.URLの素早い返信をお待ちしています... – Dhruva

関連する問題