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:'正在加载数据...', Description:'正在加载数据...'});

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 回答