1

これが私の問題です。私のアプリケーションには、ItemFileReadStore によってバックアップされた Dojo EnhancedGrid があります。ページ フローは次のようになります。

  1. ユーザーが選択リストから値を選択します。
  2. リストのアイテムがサーバーに投稿され、グリッドがサーバーからのデータで更新されます (理由は聞かないでください。これが本来の動作です)。
  3. 新しいアイテムがグリッドで強調表示されます。

さて、最初の 2 つのステップは魔法のように機能します。ただし、3 番目のステップでは頭痛の種になりました。データが ( dojo.xhrPost() を介して) サーバーに正常に POST された後、次のコードが実行されます。

myGrid.store.close();
myGrid._refresh();
myGrid.store.fetch({
    onComplete : function(items) {
        for ( var i = 0; i < items.length; i++) {
             if (items[i].documentType[0].id == documentTypeId) {                                               
                 var newItemIndex = myGrid.getItemIndex(items[i]);
                 exportMappingGrid.selection.deselectAll();
                 exportMappingGrid.selection.addToSelection(newItemIndex);
             }
     }
      }
     });

これで、グリッドの選択が更新されます (つまり、選択オブジェクトの selectedIndex > 0 になります) が、「選択された」行の上にマウスを移動しない限り、視覚的には応答がありません。.deselectAll() 行 (これが原因だと思われます) を削除すると、グリッドのselectionMode属性がsingleに設定されていても、一度に 2 つの項目が選択されることがあります。

これについて何か考えはありますか?

どうもありがとう。

4

2 に答える 2

0

これは私のために働くものです:

grid.selection.clear();
grid.selection.addToSelection(newItemIndex);
grid.selection.getFirstSelected();

ジョン

于 2013-06-27T19:04:27.017 に答える
0

次のように setSelected() を使用する必要があります

exportMappingGrid.selection.setSelected(newItemIndex, true);

2 番目のパラメーターは、行を選択する場合は true、選択を解除する場合は false です。

于 2012-07-03T23:06:05.670 に答える