0

Dojo のドキュメント、スタック オーバーフローを精査し、Firebug を使用して EnhancedGrid オブジェクト自体を徹底的に調査しましたが、答えが見つかりません。

ユーザーが並べ替えるための値を入力し、基本的に選択セットを作成する拡張グリッドがあります (indirectSelection プラグインを使用)。次に、マップ上で選択したアイテムにズームするためのボタンがあります。

問題は、列を並べ替えるときに、ストア自体のアイテムの順序が変更されないことです。各アイテム内にマップをズームする方法を示すオブジェクトを保持しているため、調整する方法がありませんインデックスを持つgrid.selection.selected配列インデックスstore._arrayOfAllItems

編集: Dojo 1.6 は、私が使用している API に組み込まれているため、Dojo 1.6 の使用に行き詰まっていることに注意してください。

4

1 に答える 1

0

Dojo Object Store Tutorialをご覧ください。

次のように、idProperty を Store に設定できます。

var employeeStore = new dojo.store.Memory({data:employees, idProperty: "name"});

次に、次のように get メソッドを使用して、その id プロパティでストアを操作できます。

// add a new employee
employeeStore.add({name:"George", department:"accounting"});
// remove Bill
employeeStore.remove("Bill");
// retrieve object with the name "Jim"
var jim = employeeStore.get("Jim");

を使用する代わりにstore._arrayOfAllItems。そうすれば、grid.selectionオブジェクトには配列インデックスの代わりに ID の値が含まれます (グリッドのストア プロパティがストアである場合)。新しい dojo のdgridがそのように機能することは確かなので、これを使用することをお勧めします。

それが役に立てば幸い、

于 2012-08-02T17:30:56.563 に答える