在operamasks-ui中,omGrid的dataSource属性可以接收的值为一个url地址串,而不能直接把一个json对象传递给grid,这对于想直接在前台封装JSON对象,并在omGrid上面展示就没办法实现了。
为了解决该问题,可以通过自行扩展新函数(解决方案一),或者改造原来的数据加载程序(解决方案二);不管采用什么样的解决方案,基于operamasks-ui良好的扩展机制和监听机制,都是很容易实现的。
解决方案一:为omGrid新增函数setSimpleData(data),实现直接加载json数据的功能.
/* * Depends: * om-grid.js */ (function($) { /** * 直接加载json格式的数据 */ $.omWidget.addInitListener('om.omGrid',function(){ var self = this, el = this.element, op = this.options; if (this.loading) { return true; } var grid = el.closest('.om-grid'), loadMask = $('.gBlock',grid); self.setSimpleData=function(data){ var pageData = this.pageData; var nowPage = pageData.nowPage || 1, data=data || {"rows":[],"total":0}; this.loading = true; loadMask.show(); try { self._addData(data); for(var i=0 , len=op._onRefreshCallbacks.length; i<len; i++){ op._onRefreshCallbacks[i].call(self); } self._trigger("onRefresh",null,nowPage,data.rows||[]); }finally{ loadMask.hide(); this.loading = false; } } }); })(jQuery);
解决方案二:改造原有的加载数据函数,使得omGrid的dataSource对象可以是一个json对象,也可以是一个url.
参考链接:http://www.operamasks.org/forum/thread-8912-1-9.html
(该参考链接里的解决方案是直接修改源代码的方式来实现的,其实可以使用扩展机制来实现)
通过插件扩展来实现该功能的代码如下:
$.omWidget.addBeforeInitListener('om.omGrid',function(){ this._base_populate=this._populate; this._populate=function(){ var self=this,op = this.options,el=this.element; if(op.dataSource && typeof op.dataSource == 'object'){ var data = op.dataSource; var grid = el.closest('.om-grid'), loadMask = $('.gBlock',grid); var pageData = this.pageData; var nowPage = pageData.nowPage || 1, data=data || {"rows":[],"total":0}; this.loading = true; loadMask.show(); try { self._addData(data); for(var i=0 , len=op._onRefreshCallbacks.length; i<len; i++){ op._onRefreshCallbacks[i].call(self); } self._trigger("onRefresh",null,nowPage,data.rows||[]); }finally{ loadMask.hide(); this.loading = false; } return true; } else { this._base_populate(); } } });
(该解决方案在对可编辑表格执行数据删除时,遇到js报错,原因及处理办法见)
更多内容请进群:312531189
相关推荐
只是我在网上找的 operamasks-ui api 文档 , 希望对你们有帮助
operamasks-ui 最新.完成的,下载下来直接可以点击查看,跟官网一模一样
operamasks-ui-2.0 这个帮助文档很难才找到的,感谢CSDN,其中的说明真的是很详细了,维护旧代码用到的这个框架,相比easyui和bootstrap这个框架简单一些,不过用起来还是不错的,除了文档太少,不过有这个就基本...
operamasks-ui-2.0-demo operamasks-ui-2.0-demo operamasks-ui-2.0-demo
operamasks-ui-2.0.zip
operamasks-ui的demo程序,能够直接部署,运行。查看om-ui上优秀的标签。
operamasks-ui-2.0-demo.zip
1、将operamasks-ui.war部署到符合Servlet 2.5/JSP2.1的所有Web容器或J2EE应用服务器(如:Tomcat) 2、war包部署成功后访问:http://127.0.0.1:8080/operamasks-ui/
很好用的一个小框架operamasks-ui-2.1
operamasks-ui-1.2.zip
springMVC框架开发 博文链接:https://lyg8266.iteye.com/blog/1404821
operamasks-ui-2.1-demo
OperaMasks-UI-Guide帮助文档
好用 金蝶 operamasks-ui-2.0.zipoperamasks-ui-2.0.zipoperamasks-ui-2.0.zip
OperaMasks-UI-Guide.rar
operamasks-ui-2.0的开发文档离线版。网上很难找的资源。
OM-UI简介 OM-UI是一个基于jQuery的前端组件库。它提供了丰富的组件,包括各种表单组件、布局组件、功能性组件等。它旨在帮助用户快速构建企业应用。它是简单易用的,并配有丰富的文档、示例和详实的开发手册。最...