`

ExtJS使用总结经验2

 
阅读更多
Ext.data.JsonStore使用HttpProxy加载数据时传递参数的两种方法


1.用baseParams属性
var Type1Store = new Ext.data.JsonStore({
fields: ['name','id'],
url: 'LoadData.aspx',
baseParams: {mode: 'type1'},
autoLoad: true
});

第一种方法传参数可能有时传递不到,为空,第二种比较保险
2.在Store load的时候传递
Type2Store.load({params:{mode: 'type2',type1: record.data.id}}); 


2、Ext.getCmp('imageReportID').update()
以上是更新组件id为'imageReportID'的展示html中的内容。。。

3、当数据库数据量过大的时候,进行查询,譬如下拉框HTTP请求数据,等待时间过长,则会请求失败,所以可做如下修改
Ext.Ajax.timeout = 180000;

延长Ext中的Ajax请求时间,则问题可以解决

4、ExtJS中Ajax请求,带参数传递的精简例子:(注释掉的传参也是行得通的)
点击Grid中一行数据产生反应
	grid.on("rowclick", function(grid, rowIndex, e) {
		
		var riskAdvice = document.getElementById("riskAdvice");
		var record = grid.getStore().getAt(rowIndex);
		if(riskAdvice){
			riskAdvice.innerHTML = "";
		}
		var riskAdviceID = record.get('flowRate');
		Ext.Ajax.request({
			method:'POST',
			url : 'queryRiskAdvice.action',//?riskAdviceID=' + riskAdviceID,
			params:{riskAdviceID : riskAdviceID},
			success : function(response, options) {
				var arrays = Ext.util.JSON.decode(response.responseText);
				riskAdvice.innerHTML = arrays.riskDealAdvice;
			}
	    });
	});


5、不带样式渲染面板   即去掉默认样式 ,配置以下属性即可 unstyled:true

6、提交数据时,提示用户等待数据返回信息
var loadMarsk = new Ext.LoadMask(Ext.getBody(), {
		msg : '正在查询中,请稍候......',
		removeMask : true
			// 完成后移除  
		});
	loadMarsk.show(); //显示  
当数据已经查询到,则取消该滚动提示,显示数据
storeReplys.on("load", function() {
		loadMarsk.hide();
		var totalCount = storeReplys.getTotalCount();
		if (totalCount == 0) {
			Ext.MessageBox.alert("提示", "没有查询到相关数据。");
			return;
		}
		Ext.getCmp('start').setDisabled(false);
		Ext.getCmp('clear').setDisabled(false);
		Ext.getCmp("labelt").add(fieldset);
		Ext.getCmp("logPanel").doLayout();
		Ext.getCmp("scrollPanel").doLayout();

		Ext.getCmp("panel").doLayout();
});


3、关于这个问题,花了我将近两天时间啊!都快把我弄哭了。。。~~~~(>_<)~~~~
问题:如何在JS文件中的Store对象得到非赋予给根属性 root 的对象的值,用啥EL表达式都行不通。。。。实在没办法了。。。试下结果成功了!
	var storeReplys = new Ext.data.Store( {
		proxy : new Ext.data.HttpProxy( {
			url : 'dailyBehaviorQuery.action',
			params : param,
			async : false, //ASYNC 是否异步( TRUE 异步 , FALSE 同步,此处需要引进一个外部js文件,此处文件已改动过,同步请求才能成功)
			success:function(response, options) {
				var arrays = Ext.util.JSON.decode(response.responseText);
				if(startDate == '' || endDate == ''){
					startDate = arrays.dateStart.replace("T"," ");
					endDate = arrays.dateEnd.replace("T"," ");
				}
			}
		}),
		reader : new Ext.data.JsonReader( {
			root : 'rows'
		}, [ {
			name : 'time',
			mapping : 'time',
			convert : function(v) {
				return v.replace("T", " ");
			}
		}])
	});


4、在ExtJS中用Store对象请求信息,如何动态请求,对Store中的数据实现动态更新,可采纳如下方法:(此处个人觉得实现以上要求,只要再次调用Store对象的load方法就行了。。。)
storeReplys.load( {
					params : param,
					callback : function(records, options, success) {
						
					},
					scope : storeReplys,
					add : false  // 此处为false表示不追加在原有数据的后面,清除原有数据。
				});


5、动态加载GRID头部标题、即显示的列并对数据重新请求并加载
StoreQueryParams.on('load', function() {
		var size = StoreQueryParams.getCount();
		var flag = false;
		//alert(size);
		for (var i = 0; i < size; i++) {
			var temp = StoreQueryParams.getAt(i).get('name');
			cm.setHidden(Number(temp) - 1, false);
		}
		grid.reconfigure(gridStore, cm);
		grid.getView().refresh();
		gridStore.load({
			params : param
		});
	});


6、在ExtJS中this.form.el.is.undefined
在ExtJS中,经常会需要用到一个窗口中嵌入一个form表单,进行表单提交,在提交表单并且关闭窗口,这个时候,会报上面错误,因为form在提交表单的时候,ajax提交表单是基于iframe的,需要去取window里面form的值,而form的window值此时已经被销毁,form.dom已经回收,正常情况下需要回调调用,如下:
{xtype:'button',text:'提交',iconCls:'save',handler:function(){
 formPanel.getForm().submit({params:{},failure:function(form,action)}
分享到:
评论

相关推荐

    ExtJS 4 技术详解,全面解析ExtJS 4

    全面解析ExtJS4以及使用经验总结,包括新特性。

    经验总结-Extjs(一)数据交互设计

    NULL 博文链接:https://missing1984.iteye.com/blog/355554

    ASPnet+Extjs+网站通用后台框架

    ASPnet+Extjs+网站通用后台框架 本人收藏了3年的资源 现放出 都是总结了很多系统 软件项目实施过程中的经验的 慢慢积累的

    工作5年J2EE经验文档总结

    工作5年J2EE经验文档总结, 文档包括69个J2EE相关文档 Extjs学习笔记 hibernate总结 J2EE经验总结 ...j2ee学习总结 ...struts2标签库总结 Spring_AOP_学习小结 自己总结的spring 等几十个总结大全

    Ext JS框架 经验之作2000页

    Ext案例总结 最牛的JS框架 泣血大作 分享网友

    dot net+Extjs 实现文件的上传下载

    dot net+Extjs 实现文件的上传下载 本人收藏了3年的资源 现放出 都是总结了很多系统 软件项目实施过程中的经验的 慢慢积累的

    ExtJS快速入门

    学了大概两个月的ext,总结了自己所学的一些经验,做了一个ppt,介绍了eclipse中环境的配置,以及自己编写的一些代码。非常适合初学者。

    快意编程 EXT JS Web开发技术详解.pdf

    《快意编程:Ext JS Web开发技术详解》是笔者在多年项目开发过程中的经验总结,它通过丰富的实例由浅入深、循序渐进地介绍了目前采用Ext JS进行Web开发的使用方法,从而帮助软件设计人员快速掌握Ext JS开发技术的使用...

    基于SSH2+Maven+EasyUI+MySQL技术实战开发易买网电子商务交易平台

    亮点一、Structs2.x+Spring3.x+Hibernate4.x+ JEasyui1.3.4+Maven3 各框架jar包等采用的均是目前为止最新的版本,讲解时使用的这些jar及框架的最新技术,如此组合在国内尚属首部、技术的前沿性可以保证让您的技术在...

    GWT-ext 布局示例

    本文是 GWT-Ext 体验之旅系列 的第 3 部分,我们将体验各种布局管理器的效果,了解我们常用的布局管理器的编程方式和一些经验总结。在对树的介绍中,我们将从树的同步和异步方式的初始化到树的 一些特性进行详细介绍...

    ASP.NET软件工程师

    如使用的开发环境为VS2010,.net 4.0类库,SQL erver2008,LinQ技术,.net MVC3.0,jquery,extjs,Silverlight4等富客户端技术等,保证了技术在三年之内不会落伍 6、首次采用: 视频授课+上机课作业练习+上机课作业讲解+...

    GoodProject Maven Webapp.zip

    1、中文聊天对话:基于图灵大脑中文语义与认知计算技术以及多年中文自然语言交互研发经验,图灵机器人具备准确、流畅、自然的中文聊天对话能力[2] 2、自定义身份属性:图灵机器人平台所提供的ChatBot支持充分的机器人...

Global site tag (gtag.js) - Google Analytics