ext.grid.rowexpander:如何让Ext的RowExpander实现异步调用

     目前Ext GridRowExpander使用模板是在读取Grid同步加载实际上这样处理并不是很好如果数据量大对性能会有定影响更好处理方式是异步加载只有需要时候再加载需要数据下面介绍如果实现:   下载此文件http://blog.cutterscrossing.com/enclosures/rowexpander%5Fexample%2Ezip 这是国外个朋友扩展RowExpander我对比了几种处理方式他这个写最简洁而且最容易使用所以推荐大家使用他RowExpanderBlog主页:http://blog.cutterscrossing.com/index.cfm?mode=entry&entry=E7D79511-3048-71C2-177E88E50F9A699D

   2将下载压缩文件用WinRar或者别压缩文件解压缩将“rowexpander_example\resources\js\custom”目录中“RowExpander.js”加入你要用页面中这个就是我们要使用RowExpander

   3在页面中使用这个RowExpander其实就是在想使用RowExpander页面中例子化这个RowExpander实现异步加载数据思路方法在你定义好了自己Grid前提下使用具体代码举例如下:


 // RowExpander例子化
  var expander =  Ext.grid.RowExpander( {
  remoteDataMethod :getRemoteData
  })
  //远程数据
  function getRemoteData{
  //你要实现远程数据代码
  //更新数据到页面中最终数据显示靠这个实现必须使用!!
  Ext.getDom('remData' + index).innerHTML = 得到数据;
  }



  实际上已经有很完整举例在那位作者中了“rowexpander_example\resources\js\custom\gridtest.js”

  注意问题:

  这个远程思路方法最后是通过innerHTML 思路方法把得到数据显示在页面中如果页面使用了多个Grid创建了多个RowExpander例子那么就需要修改RowExpander.js里面点代码了否则直显示数据在个DIV中同时页面中也要区别要把数据显示在哪个DIV中

  1修改RowExpander中beforeExpand (this.remoteDataMethod) {}中原来代码修改成你要显示DIV原来DIV名字为“remData”修改成你想用名字如果是多个RowExpander例子根据自己需要判断生成多个区别名字DIV

  2页面显示数据在区别DIV中主要就是将数据innerHTML 在哪个DIV中根据自己需要判断后“Ext.getDom(你DIV编号 + index).innerHTML=你数据”这样就可以实现多个例子共用了!

Tags:  c#异步调用 异步调用 extrowexpander ext.grid.rowexpander

延伸阅读

最新评论

发表评论