Ext视图里按钮JS总结

1.打开文档:

function(){	
	var records = grid.getSelectedRecords();	
	if(records.length > 0){		
		var id = records[0].get('ID');	
		MixkyApp.desktop.openDocument('moduleName.docName');	
	}
}


其他写法:

MixkyApp.desktop.openDocument('moduleName.docName', id,undefined, {
	openerId : panel.getId()
});


2.如果需要获取视图里的字段的值:

records[0].get('fieldName');

3.提示消息:

MixkyApp.showInfoMessage("提示内容");

4.新增:

function(){
	MixkyApp.desktop.openDocument('moduleName.docName');
}

其他写法:

MixkyApp.desktop.openDocument('moduleName.docName', 0);


6.批量处理按钮:

function () {
	var records = grid.getSelectedRecords();
	if (records.length > 0) {
		Ext.Msg.confirm('系统提示','确定要XX选中的XX吗?',
		function(btn){
			if(btn=='yes'){
				var ids = [];
				for (var i = 0; i < records.length; i++) {
					ids[i] = records[i].get('ID');
				}
				XXXDirect.XXX(ids,function(r,e) {
					if(r && r.success) {
						MixkyApp.showInfoMessage('XXX!');
						grid.getStore().load();
					} else {
						MixkyApp.showErrorMessage('操作失败!' + r.message);
					}
				}); 
			}
		});
	}
}


7.Excel导入:

function() {
	function openUpload(type,id){ 
		types = type;  
		uploadid = id; 
		winUpload.show(); 
	}  
	var formUpload = new Ext.form.FormPanel({ 
		baseCls: 'x-plain', 
		labelWidth: 80, 
		fileUpload:true, 
		defaultType: 'textfield', 
		items: [{  
			xtype: 'textfield', 
			fieldLabel: '文 件', 
			name: 'upload', 
			inputType: 'file', 
			allowBlank: false, 
			blankText: '请上传文件', 
			anchor: '90%'  
		}]  
	});  
	var winUpload = new Ext.Window({ 
		title: 'Excel导入', 
		width: 400,  
		height:200,  
		minWidth: 300, 
		minHeight: 100, 
		layout: 'fit', 
		plain:true,  
		bodyStyle:'padding:5px;',
		buttonAlign:'center', 
		items: formUpload, 
		buttons: [{  
			text: '导入',  
			handler: function() { 
				if(formUpload.form.isValid()){ 
					Ext.MessageBox.show({ 
						title: 'Please wait', 
						msg: 'Importting...', 
						progressText: '', 
						width:300,  
						progress:true, 
						closable:false, 
						animEl: 'loding'
					});  
					formUpload.getForm().submit({ 
						url:'plugin/kd/excel.import.do?type=1', 
						success: function(form, action){ 
							Ext.Msg.alert('成功','导入成功.'); 
							winUpload.hide(); 
						},  
						failure: function(form, action){
							console.log(action);
							var res = eval( "(" + action.response.responseText + ")" );
							Ext.Msg.alert('Error', "导入失败:"+res.message);
							winUpload.hide();
						}  
					}) 
				}  
			}  
		},{  
			text: '取 消',  
			handler:function(){winUpload.hide();} 
		}]  
	});
	openUpload(); 
}


8.Excel导出:

function() {
    panel.exportToExcel();
}

9.弹窗:

MixkyApp.desktop.openUrlWithWindow('XXX', 'XXX.do?ids='+ids+'&gridId='+gridId,{
	title:'XXX',
	width : 350,
	height : 150,
	resizable : true,
	plain: true,
	modal:true,
	maximized:false,
	iconCls:'icon-sys-create',
	maximizable : true,
	minimizable : false,
}); 


10.确认弹窗(删除时的确认):

function(){
	Ext.MessageBox.confirm('操作确认', '该操作将XXX,您确定吗?', function(btn){
		if(btn == 'yes'){
			var records = getSelectedRecords();
			if(records.length > 0){
				var id = records[0].get('ID');
				id=parseInt(id);
				XXXDirect.deleteDocument('modulename.docname', id, function(r,e){
					if(r && r.success){
						panel.refresh();
					} else {
						MixkyApp.showErrorMessage('操作失败,' + r.message);
					}
				});
			}
		}
	});
}


11.附件下载:

function(){
	var records = grid.getSelectedRecords();
	if(records.length > 0){
		var url = records[0].get('F_URL');
		if(url != "") {
			window.open(url);
		} else {
			MixkyApp.showInfoMessage('该信息尚无所选类型附件');
		}
	}
}


12.导出视图里未显示的字段:

function () {
	var selects = grid.getSelectionModel().getSelections();
	var ids = [];
	if (selects != null && selects.length > 0) {
		for (var i = 0; i < selects.length; i++) {
			ids[i] = selects[i].get("ID");
		}
	}
	var tableAll = false;
	var titles = [
		{
		name:'ID',
		key:'ID',
		format:'',
		width:'3000'
		},
		...
		,{
		name:'XXX',
		key:'F_XXX',
		format:'',
		width:'9000'
		}
	];
	var index;
	var array = new Array();
	for(index in titles) {
		var json =JSON.stringify(titles[index]);//对象转为JSON
		array.push(json);
	}
	var excelParams = Ext.apply({},grid.getStore().baseParams);
	Ext.apply(excelParams,{ids: ids,titles:array, panelTitle: panel.title,tableAll:tableAll});
	excelParams.params = Ext.util.JSON.encode(excelParams.params);
	MixkyApp.showInfoMessage("表单生成需较长时间,请耐心等待");
	location.href = '/manage/downXXX.do?' + Ext.urlEncode(excelParams);
}


13.信息变更按钮:

	
function () {
	
	var viewPanel = panel;
	var records = grid.getSelectedRecords();
	if(records.length > 0){	
		//获取所需内容
		var memId = records[0].get('ID');	
		var memName = records[0].get('F_NAME');
		//弹窗选择变更内容字段
		showFormWin(records[0],viewPanel);
	} else {
		return;
	}

	//弹出窗口
	function showFormWin(record,viewPanel) {
	
		var memId = record.get('ID');
		var memName = record.get('F_NAME');
		
		//初始化标签中的Ext:Qtip属性。
		Ext.QuickTips.init();
		Ext.form.Field.prototype.msgTarget = 'side';
		
		//内容input
		
		var txtoldcontent = new Ext.form.TextArea({
			width: 280,
			allowBlank: true,
			maxLength: 100,
			//name: 'username',
			fieldLabel: '旧内容',
			blankText: '',
			maxLengthText: '内容不能超过100个字符'
		});
		
		var txtnewcontent = new Ext.form.TextArea({
			width: 280,
			allowBlank: false,
			maxLength: 100,
			//name: 'username',
			fieldLabel: '新内容',
			blankText: '请输入新内容',
			maxLengthText: '内容不能超过100个字符'
		});

		//----------------------下拉列表开始----------------------//
		//创建数据源[数组数据源]
		var combostore = new Ext.data.ArrayStore({
			fields: ['updateType', 'name'],
			data: [['company', 'XXX'], ['major', 'XXX']]
		});
		//创建Combobox
		var combobox = new Ext.form.ComboBox({
			width: 280,
			fieldLabel: '变更属性',
			store: combostore,
			displayField: 'name',
			valueField: 'updateType',
			triggerAction: 'all',
			emptyText: '请选择...',
			allowBlank: false,
			blankText: '请选择属性',
			editable: false,
			mode: 'local'
		});
		//Combobox获取值
		combobox.on('select', function () {
			//alert(combobox.getValue());
			var oldContent = "";
			var fieldType = combobox.getValue();
			if(fieldType == "company") {
				oldContent = record.get('F_COMPANY');
			} else if(fieldType == "major") {
				oldContent = record.get('F_MAJOR');
			}
			txtoldcontent.setValue(oldContent);
		})
		//----------------------下拉列表结束----------------------//
		
		//----------------------按钮开始----------------------//
		function updateMemInfo() {
			var updateType = combobox.getValue();
			var newContent = txtnewcontent.getRawValue();
			if(updateType && updateType!='' && newContent && newContent!='') {
				XXXDirect.updateXXXInfo(memId,updateType,newContent,function(r,e) {
					if(r && r.success) {
						MixkyApp.showInfoMessage('信息更新成功!');
						viewPanel.refresh();
						Ext.getCmp('updateXXXWin').close();
					} else {
						MixkyApp.showErrorMessage('操作失败:' + r.message);
					}
				} );
			} else {
				return;
			}
		}
		//提交按钮处理方法
		var btnsubmitclick = function () {
			updateMemInfo();
		}
		//提交按钮
		var btnsubmit = new Ext.Button({
			text: '提交',
			handler: btnsubmitclick
		});
		//----------------------按钮结束----------------------//
		
		//表单
		var form = new Ext.form.FormPanel({
			frame: true,
			height: 204,
			style: 'margin:10px',
			items: [combobox, txtoldcontent, txtnewcontent],
			buttons: [btnsubmit]
		});
		
		//窗体
		var win = new Ext.Window({
			id:'updateXXXWin',
			title: '信息更新 - ' + memName,
			width: 447,
			height: 264,
			html: '',
			resizable: true,
			modal: true,
			closable: true,
			closeAction: 'close', 
			maximizable: true,
			minimizable: true,
			buttonAlign: 'center',
			items: form
		});
		win.show();
	}
}

14.弹窗视图(表格类型):

<%@ page contentType="text/html; charset=utf-8"%>
<%
	String panelid = request.getParameter("panelid");
	String termname = request.getParameter("termname");
	String termid = request.getParameter("termid");
%>
<script language='javascript'>
Ext.onReady(function(){
	var panelid = '<%=panelid%>';
	var panel = Ext.getCmp(panelid);

	// 存储字段
	var fields = [
		{name:'id', mapping:'id'},
		{name:'f_branch_name', mapping:'f_branch_name'},
		{name:'f_branch_id', mapping:'f_branch_id'},
		{name:'f_branch_term', mapping:'f_branch_term'}
	];
	// 列表字段
	var columns = [new Ext.grid.CheckboxSelectionModel(),{
		id : 'id',
		dataIndex : 'id',
		width:70,
		header : 'XXX'
	},{
		id : 'f_branch_name',
		dataIndex : 'f_branch_name',
		header : 'XXX',
		width:120
	},{
		id : 'f_branch_id',
		dataIndex : 'f_branch_id',
		width:120,
		header : 'XXX'
	},{
		id : 'f_branch_term',
		dataIndex : 'f_branch_term',
		header : 'XXX'
	}];
	// 数据访问
	var store = new Ext.data.DirectStore({
		directFn : BranchTermListDirect.getBranchTermList,
		root : 'results',
		totalProperty : 'totals',
		idProperty : 'id',
		sortInfo: {field:'id', direction: 'ASC'},
		fields:fields
	});
	
	
    // 功能条
	var btnRefresh = new Ext.Action({
		text : '刷新',
		iconCls : 'icon-sys-refresh',
		handler : function(){
			panel.refresh();
		}
	});

	var btnSave = new Ext.Action({
		text : '保存',
		iconCls : 'icon-sys-save',
		handler : function(){
			panel.save();
		}
	});
	
    var tools = [btnSave, '-', btnRefresh];

	// 表格对象
	var grid = new Ext.grid.GridPanel({
    	region : 'center',
		border : false,
		sm:new Ext.grid.CheckboxSelectionModel(),
		columns : columns,
		autoExpandColumn:'f_branch_name',
		enableHdMenu:false,
		enableColumnMove:false,
		store : store,
		tbar : tools,
		contextMenu : new Ext.menu.Menu({items:tools}),
		listeners : {
			'rowcontextmenu' : function(g, rowIndex, e){
				g.getSelectionModel().selectRow(rowIndex);
				g.contextMenu.showAt(e.getXY());
			},
			'rowdblclick' : function(g, rowIndex, e){
				btnEdit.execute();
			}
		}
	});

	// 刷新
	panel.refresh = function(){
		store.reload();
	}
	// 保存属性修改
	panel.save = function(){
		var records = grid.getSelectionModel().getSelections();	
		if(records.length > 0){	
		var ids = '';	
		var names = '';
		for(var i=0;i<records.length;i++){
		ids += records[i].data.id+',';	
		names += records[i].data.f_branch_name+',';
		}
		
		BranchTermListDirect.addBranchToOrg(ids,names,'<%=termname%>','<%=termid%>', function(result, e){
			if(result && result.success){
				MixkyApp.showInfoMessage('数据以保存','提示信息');
			}else{
				MixkyApp.showErrorMessage('保存数据出现错误!', '错误提示');
			}
		});
		}
	};
	panel.add(grid);
	panel.doLayout();
	panel.refresh();
});
</script>

15.输入提示框:

function(){
	Ext.Msg.prompt('添加XXX', '请输入XXX:', function(btn, text){
	    if (btn == 'ok' && text != ''){
	    	XXXDirect.SaveDataToDictionary({'dictionary':'mkNotifyTag','f_caption':text,'f_name':text,'state':'add'}, function(result, e){
				if(result && result.success){
					panel.refresh();
				}else{
					MixkyApp.showDirectActionFail("添加【" + text + "】XXX失败", result, e);
				}
	    	})
	    }
	});
}

16.获取修改的数据:

store.getModifiedRecords();
需要提交

17.删除:

panel.removeRecord();

18.上移下移:

panel.moveUp();
panel.moveDown();

19.群发:

function(){
var selects = grid.getSelectionModel().getSelections();
	var ids = [];
	var isAll=false;
	if (selects != null && selects.length > 0) {
		var emptyTel='';
		for (var i = 0; i < selects.length; i++) {
			ids[i] = selects[i].get("F_TEL");
			if(ids[i]==''){
				emptyTel+=selects[i].get("F_NAME");
				emptyTel+='、';
			}
		}
		
	emptyTel=emptyTel.substring(0,emptyTel.length-1);
	if(emptyTel!=''){
		MixkyApp.showInfoMessage(emptyTel+'XXX是空的','提示信息');
		if(selects.length=1){
			return;
		}
	}
	
	MixkyApp.desktop.openUrlWithWindow('sendMsgUtil', 'sendMsg.do?tels='+ids+'&isAll=false',{
			title:'自定义XXX',
			width : 500,
			height : 300,
			resizable : true,
			plain: true,
			modal:true,
			maximized:false,
			iconCls:'icon-sys-create',
			maximizable : true,
			minimizable : false,
		});	
	}else{
	
		Ext.MessageBox.confirm('操作确认', '您未选中数据,继续将给所有人XX,您继续吗?', function(btn) {
			if (btn == 'yes') {		
				MixkyApp.desktop.openUrlWithWindow('sendMsgUtil', 'sendMsg.do?tels='+ids+'&isAll=true',{
						title:'自定义XXX',
						width : 500,
						height : 300,
						resizable : true,
						plain: true,
						modal:true,
						maximized:false,
						iconCls:'icon-sys-create',
						maximizable : true,
						minimizable : false,
				});		 
			}
		});
			
	}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值