`
dinguangx
  • 浏览: 244748 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

【Operamasks-UI】omGrid直接设置json数据给dataSource

    博客分类:
  • OMUI
阅读更多

     在operamasks-ui中,omGriddataSource属性可以接收的值为一个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

1
1
分享到:
评论

相关推荐

    operamasks-ui 帮助文档

    只是我在网上找的 operamasks-ui api 文档 , 希望对你们有帮助

    operamasks-ui 最新.

    operamasks-ui 最新.完成的,下载下来直接可以点击查看,跟官网一模一样

    operamasks-ui-2.0

    operamasks-ui-2.0 这个帮助文档很难才找到的,感谢CSDN,其中的说明真的是很详细了,维护旧代码用到的这个框架,相比easyui和bootstrap这个框架简单一些,不过用起来还是不错的,除了文档太少,不过有这个就基本...

    operamasks-ui-2.0-demo.zip

    "Operamasks UI 2.0 Demo"是一个与JavaScript相关的压缩包,包含了对Opera Masks用户...实际使用时,开发者需要按照readme.txt的指示进行操作,并通过operamasks-ui.war文件了解和体验Opera Masks UI 2.0的全部功能。

    operamasks-ui_demo

    operamasks-ui的demo程序,能够直接部署,运行。查看om-ui上优秀的标签。

    金蝶operamasks-ui(API)

    1、将operamasks-ui.war部署到符合Servlet 2.5/JSP2.1的所有Web容器或J2EE应用服务器(如:Tomcat) 2、war包部署成功后访问:http://127.0.0.1:8080/operamasks-ui/

    operamasks-ui

    "Operamasks-UI" 是一个专为Opera浏览器设计的用户界面增强插件的源代码包,其版本为1.2,存储在一个名为"operamasks-ui-1.2.zip"的压缩文件中。这个插件的目标是提供更加个性化、高效且易用的浏览体验。在了解这个...

    operamasks-ui-2.0.zip

    关于“operamasks-ui-2.0.zip”这个压缩包,它包含了OperaMasks UI 2.0的所有源码、样式文件、文档以及示例项目。解压后,开发者可以查看源码学习框架的工作原理,也可以直接在自己的项目中引用这些文件。为了更好地...

    operamasks-ui-master.zip

    【标签】"operamasks-ui" 直接关联了这个框架的名字,它是这个压缩包的核心内容,是一个专为Web界面设计的组件库,提供了丰富的UI元素和交互设计,使得开发者能够快速构建出符合现代审美和功能需求的页面。...

    operamasks-ui-2.0-demo--.zip

    这个压缩包文件 "operamasks-ui-2.0-demo--.zip" 包含了用于演示和实践如何使用Opera Masks UI 2.0版本的资源和代码示例。 Opera Masks UI 是一个强大的工具,它允许开发者通过自定义界面元素和交互方式来增强...

    operamasks-ui和struts2、springMVC框架整合实践

    springMVC框架开发 博文链接:https://lyg8266.iteye.com/blog/1404821

    operamasks-ui-2.1-demo

    通过下载并解压“operamasks-ui-2.1-demo”压缩包,我们可以深入了解这个框架如何应用于实际场景。 首先,"readme.txt"文件是项目的基本指南,通常包含了项目简介、安装步骤、使用方法和常见问题等信息。在这个项目...

    operamasks-ui-2.1.zip

    "Operamasks UI 2.1" 是一个轻量级且高效的前端框架,主要用于构建用户界面。这个框架可能特别注重易用性和性能,使得开发者能够快速地开发出响应式和美观的网页应用。"OMUI"是其简称,可能是"Opera Masks User ...

    OperaMasks-UI-Guide帮助文档

    OperaMasks-UI-Guide帮助文档

    operamasks-ui-2.0-doc

    通过深入学习这份"operamasks-ui-2.0-doc",开发者不仅可以掌握Operamasks的集成和自定义方法,还能了解到区块链技术在Web应用中的实际应用,这对于构建基于以太坊或其他区块链平台的DApp至关重要。同时,了解这些...

    Operamasks-UI

    OM-UI简介 OM-UI是一个基于jQuery的前端组件库。它提供了丰富的组件,包括各种表单组件、布局组件、功能性组件等。它旨在帮助用户快速构建企业应用。它是简单易用的,并配有丰富的文档、示例和详实的开发手册。最...

    OperaMasks-UI-Guide.rar

    《OperaMasks UI指南》是针对OperaMasks用户界面的一份详细参考资料,旨在帮助用户更好地理解和操作这款浏览器扩展。这份指南以`.chm`( Compiled Help Manual)格式封装,是一种常见的Windows帮助文档格式,通常...

    扩展OperamasksUI的grid的排序和显示detail属性

    Operamasks UI可能是一个用于构建Web应用的开源库,提供了丰富的组件和功能,便于开发者快速构建数据密集型的应用。 Grid组件在数据展示中起着核心作用,它通常用于展示表格形式的数据,并支持多种交互操作,如排序...

Global site tag (gtag.js) - Google Analytics