EXTjs 4.2.1加载网格数据时显示默认数据

时间:2014-02-19 15:04:47

标签: extjs extjs4 extjs4.2 loadmask

我正在使用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库提供的解决方案,如果存在的话。感谢。

1 个答案:

答案 0 :(得分:1)

根据您的信息,您似乎一次加载每条记录,然后填充您获得的值,而不是加载所有商店记录。

您所解释的内容似乎是完美的,唯一的问题是当您收到回复哪个记录要更新时?如果这就是你的问题,在ajax请求的成功回调中你发送记录并用它来更新

例如

var newlyAddedRecord = 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();
}