0

私はEXTjs 4.2を使用しています.LoadMaskまたは他のメカニズムを使用して、スクロールアップ/ダウンアクションが実行され、グリッドをロードする必要がある間、グリッドの行にデフォルト値を表示する方法があるかどうかを知りたいです.グリッドの空のブロックや読み込みメッセージを表示するのではなく、情報を表示します。

たとえば、下にスクロールすると、次のように表示されます。

|      Column 1      |     Description     |
--------------------------------------------
| value 1            | value 2             |
| value 3            | value 4             |
| value 5            | value 6             |
| loading data...    | loading data...     |
| loading data...    | loading data...     |
| loading data...    | loading data...     |

次に、情報が読み込まれると、通常どおり、受信した値が表示されます。

|      Column 1      |     Description     |
--------------------------------------------
| value 1            | value 2             |
| value 3            | value 4             |
| value 5            | value 6             |
| value 7            | value 8             |
| value 9            | value 10            |
| value 11           | value 12            |

このすべての行を「データの読み込み中...」情報で手動で挿入し、応答を受け取った時点でそれを置き換える実装を既に実装していますが、これは要求とストアを管理するために特定のコードを使用する必要があるためです。存在する場合、EXTjs ライブラリによって提供されるソリューションを探しています。ありがとう。

4

1 に答える 1

1

あなたの情報に基づいて、一度に各レコードをロードしてから、すべてのストア レコードをロードする代わりに、取得した値を入力しているようです。

あなたが説明したことは完璧に思えますが、唯一のことは、どのレコードを更新するかについて応答が返ってきたときですか? それがあなたの質問であれば、ajaxリクエストの成功コールバックでレコードを送信し、それを更新に使用します

例えば

var newAddedRecord = mystore.add({Column:'loading data...', Description:'loading data...'});

Ext.Ajax.request({
    url: 'url to post',
    method: 'POST',
    scope: this,
    success:function(request,options)
    {
        successCallback(request,options,this, newlyAddedRecord);
    },
    failure: handleFailure,
    params: parameters //Any parameters that needs to be passed in request
});

successCallback 関数内

successCallback: function(request, options, scope, newlyAddedRecord) {
  var jsonData = Ext.JSON.decode(request.responseText); //or the way your data is returned

  newlyAddedRecord.set('Column', jsonData.column);   
  newlyAddedRecord.set('Description', jsonData.description);
  newlyAddedRecord.commit();
}
于 2014-02-24T21:28:03.980 に答える