加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在ExtJs中的行扩展器的ajax上加载数据

发布时间:2020-12-16 02:55:44 所属栏目:百科 来源:网络整理
导读:我正在使用Sencha ExtJs网格4.2.我正在为我的网格使用Expander插件,并尝试从Ajax扩展区域下加载数据.现在我正在使用此代码显示有关扩展的数据. plugins: [{ ptype: 'rowexpander',rowBodyTpl : new Ext.XTemplate( 'brimg height="31" width="32" src="../up
我正在使用Sencha ExtJs网格4.2.我正在为我的网格使用Expander插件,并尝试从Ajax扩展区域下加载数据.现在我正在使用此代码显示有关扩展的数据.

plugins: [{
            ptype: 'rowexpander',rowBodyTpl : new Ext.XTemplate(

                '<br><img height="31" width="32" src="../upload/patient/thumb/{patient_image}">','&nbsp;&nbsp;&nbsp;<p><b>{fname},{lname}</b></p>','<br> {accordian_view}'

            )
 }],

在这里,您可以看到数据已预先填充,但我的要求是在扩展时加载数据.我正在努力寻找这样做的事件或过程.但仍然没有运气.如果有任何想法请分享.

提前致谢

解决方法

您可以在RowExpander插件上查看expandbody事件: http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.grid.plugin.RowExpander-event-expandbody

此事件不仅会传递行的绑定记录,还会传递展开的元素,因此您可以:

>通过Ext.Ajax.request({…})请求数据
>处理响应
>将内容添加到展开的行

然而,要记住的一件事是这种方法的异步性质.也就是说,无论后续请求返回多长时间,该行都将立即展开.因此,在处理expandbody事件时,做这样的事情可能是个好主意:

>在展开的行区域中添加“加载”文本/图标/任何内容
>提出Ajax请求
>处理响应
>使用从Ajax请求返回的数据替换加载文本/图标/任何内容

可能有人已经这样做了,但你也可以(我强烈建议)将这个过程包装成你自己的自定义插件,扩展RowPlugin.这样你就可以在app的其他地方使用它来处理任何网格.如果您最终创建自定义插件,请与社区分享!

编辑:一个快速的谷歌揭示了一些正是这样的自定义插件.例如:https://github.com/nickbretz/Ext.ux.AsyncRowExpander/blob/master/AsyncRowExpander.js

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读