`
zjnicholas
  • 浏览: 36700 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

大量文字输入控件,点击弹出文字输入窗口

阅读更多
/**
 * 大量文字输入控件,点击弹出文字输入窗口
 * 
 * @class App.widget.PopupTextArea
 * @extends Ext.ux.form.TriggerField
 * @author hongpf
 * @date 2009-5-26
 */
Ext.ns('App.widget');
App.widget.PopupTextArea = Ext.extend(Ext.ux.form.TriggerField, {

	trigger2Class : 'x-form-more-trigger',
	/**
	 * @cfg {Integer} winWidth 弹出框的宽度
	 */
	winWidth : null,
	/**
	 * @cfg {Integer} minWinWidth 弹出框最小宽度
	 */
	minWinWidth : 420,
	/**
	 * @cfg {Integer} winHeight 弹出框高度
	 */
	winHeight : null,
	/**
	 * @cfg {Integer} minWinHeight 弹出框最小高度
	 */
	minWinHeight : 300,

	winTitle : '输入内容',

	maxLength : 1000,

	maxLengthText : '内容长度不能超过500个字!',

	initComponent : function() {
		App.widget.PopupTextArea.superclass.initComponent.call(this);
		this.addEvents('select', 'cancel');
	},
	initWin : function() {
		var width = this.winWidth || this.minWinWidth;
		var height = this.winHeight || this.minWinHeight;

		var showFieldLabel = this.fieldLabel.replace(/<.*>/g, '');
		this.maxLengthText = showFieldLabel + '的最大长度是 ' + this.maxLength + ' 个字符,或 ' + this.maxLength / 2 + ' 个汉字!';
		if (!this.win) {
			if (!this.form) {
				var textAreafield = new Ext.form.TextArea({
					maxLength : this.maxLength,
					maxLengthText : this.maxLengthText,
					name : 'text'
				});
				this.form = new Ext.FormPanel({
					frame : false,
					header : false,
					bodyBorder : false,
					layout : 'fit',
					width : width - 20,
					height : height - 50,
					defaults : {
						width : width - 30
					},
					defaultType : 'textfield',
					items : [textAreafield]
				});
				this.form.textAreafield = textAreafield;
			}

			this.win = new Ext.Window({
				title : this.winTitle,
				width : this.winWidth || this.minWinWidth,
				height : this.winHeight || this.minWinHeight,
				autoScroll : true,
				bodyStyle : 'padding:5px;',
				layout : 'fit',
				closeAction : 'hide',
				items : [this.form],
				buttons : [{
					text : "确定",
					handler : this.confirm.createDelegate(this)
				}, {
					text : "取消",
					handler : this.cancel.createDelegate(this)
				}]
			});

			this.fireEvent("initWin", this);
		}
	},
	onRender : function(ct, position) {
		App.widget.PopupTextArea.superclass.onRender.call(this, ct, position);
		if (Ext.isGecko) {
			this.el.dom.setAttribute('autocomplete', 'off');
		}
		this.initWin();
	},
	confirm : function() {
		var hVal = Ext.getCmp(this.hiddenName);
		if (!this.form.getForm().isValid()) {
			Ext.Msg.alert('提示', this.maxLengthText);
			return;
		}
		var values = this.form.getForm().getValues();
		if (!values.text) {
			values.text = '';
		}
		var value = values.text;
		this.setValue(value);
		this.win.hide();
	},

	cancel : function() {
		this.win.hide();
	},
	setValue : function(v) {
		App.widget.PopupTextArea.superclass.setValue.call(this, v);
		this.onChange();
	},

	validateBlur : function() {
		return !this.win || !this.win.isVisible();
	},
	onDisable : function() {
		App.widget.PopupTextArea.superclass.onDisable.call(this);
		if (this.wrap) {
			// this.wrap.addClass(this.disabledClass);
			// this.el.removeClass(this.disabledClass);
		}
	},
	onDestroy : function() {
		if (this.win.el) {
			this.win.destroy();
		}
		App.widget.PopupTextArea.superclass.onDestroy.call(this);
	},
	onTriggerClick : function() {
		this.win.show();
		if (this.form.rendered) {
			this.form.textAreafield.setReadOnly(this.disabled || this.readOnly);
		}
		this.win.buttons[0].setDisabled(this.disabled || this.readOnly);
		this.onFocus();
		this.form.getForm().setValues({
			text : this.getValue()
		});
		this.form.find('name', 'text')[0].focus(false, 100);
	}
});
Ext.reg('popupTextArea', App.widget.PopupTextArea);
分享到:
评论

相关推荐

    VB编程资源大全(控件 其它3)

    s005.ZIP 一种可以弹出的按钮,具有多种形态和功能(31KB) 69,s004.ZIP 在 list 控件里进行增量查询(4KB) 70,s003.ZIP 一个进度条的控件,可以有多种形态供你选择(142KB) 71,s002.ZIP ...

    VB编程资源大全(控件 其它1)

    s005.ZIP 一种可以弹出的按钮,具有多种形态和功能(31KB) 69,s004.ZIP 在 list 控件里进行增量查询(4KB) 70,s003.ZIP 一个进度条的控件,可以有多种形态供你选择(142KB) 71,s002.ZIP ...

    AutoPlay_Menu_Builder6.0.1328注册版

     创建模板点击主窗口中的菜单文件-&gt;另存为模板,将会弹出下面的对话框,帮助您将当前正在编辑的项目保存为新的模板。您需要键入新模板的名称、作者及说明,程序会根据当前视图自动创建预览图像。模板创建完成之后,...

    AutoPlay_Menu_Builder5.5.0.1328注册版

     创建模板点击主窗口中的菜单文件-&gt;另存为模板,将会弹出下面的对话框,帮助您将当前正在编辑的项目保存为新的模板。您需要键入新模板的名称、作者及说明,程序会根据当前视图自动创建预览图像。模板创建完成之后,...

    VB编程资源大全(控件 其它2)

    s005.ZIP 一种可以弹出的按钮,具有多种形态和功能(31KB) 69,s004.ZIP 在 list 控件里进行增量查询(4KB) 70,s003.ZIP 一个进度条的控件,可以有多种形态供你选择(142KB) 71,s002.ZIP ...

    《程序天下:JavaScript实例自学手册》光盘源码

    12.3 使窗口只第一次访问时弹出 12.4 禁止弹出警告框 12.5 关闭窗口不提示的方法 12.6 关闭窗口时的提示 12.7 定时弹出窗口 12.8 调整窗口的大小 12.9 打开的窗口居中 12.10 打开窗口的等待提示 12.11 在打开的窗口...

    程序天下:JavaScript实例自学手册

    12.3 使窗口只第一次访问时弹出 12.4 禁止弹出警告框 12.5 关闭窗口不提示的方法 12.6 关闭窗口时的提示 12.7 定时弹出窗口 12.8 调整窗口的大小 12.9 打开的窗口居中 12.10 打开窗口的等待提示 12.11 在打开的窗口...

    API之网络函数---整理网络函数及功能

    API之网络函数1. API之网络函数 WNetAddConnection 创建...GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置 GetSystemMenu 取得指定窗口的系统菜单的句柄 HiliteMenuItem 控制顶级菜单条目的加亮显示...

    VB程序设计及应用

    10.1.2 弹出式菜单 10.1.3 设计菜单的步骤 0.1.4 菜单编辑器 10.2 下拉菜单的设计 10.3 菜单项的控制 10.3.1 有效性控制 10.3.2 菜单项标记 10.3.3 菜单项的增减 10.4 弹出式菜单 实训 习题 第 11章 ...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    +Button, Window等控件弹出位置属性的变化。 -Window的Target属性由字符串类型变为枚举类型,注意更新以前的代码:Target="_self" -&gt; Target="Self", Target="_parent" -&gt; Target="Parent"。 -MenuButton, ...

    ExtAspNet_v2.3.2_dll

    +Button, Window等控件弹出位置属性的变化。 -Window的Target属性由字符串类型变为枚举类型,注意更新以前的代码:Target="_self" -&gt; Target="Self", Target="_parent" -&gt; Target="Parent"。 -MenuButton, ...

    C#编程经验技巧宝典

    2 &lt;br&gt;0003 设置程序代码行序号 3 &lt;br&gt;0004 开发环境全屏显示 3 &lt;br&gt;0005 设置窗口的自动隐藏功能 3 &lt;br&gt;0006 根据需要创建所需解决方案 4 &lt;br&gt;0007 如何使用“验证的目标架构”功能 4 ...

    java源码包---java 源码 大量 实例

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...

    vc++ 应用源码包_6

    独立打包,保证可解压,内含大量源码,网上搜集而来。一共10几包,每个包几十兆。 Visual.C++编程技巧精选500例源代码 内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序...

    vc++ 应用源码包_5

    独立打包,保证可解压,内含大量源码,网上搜集而来。一共10几包,每个包几十兆。 Visual.C++编程技巧精选500例源代码 内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序...

    vc++ 应用源码包_1

    独立打包,保证可解压,内含大量源码,网上搜集而来。 Visual.C++编程技巧精选500例源代码 内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、...

    vc++ 应用源码包_2

    独立打包,保证可解压,内含大量源码,网上搜集而来。 Visual.C++编程技巧精选500例源代码 内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、...

    vc++ 应用源码包_3

    独立打包,保证可解压,内含大量源码,网上搜集而来。 Visual.C++编程技巧精选500例源代码 内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、...

    易语言程序免安装版下载

    修改扩展界面支持库三,解决单击卷帘菜单后导致日期框不能弹出下拉窗口的BUG。 4. 修改XP风格支持库,解决GDI资源泄露,以及在使用通用组件库六时组合框标题出现重影的BUG。 5. 修改扩展界面支持库一,解决树形框...

    JAVA上百实例源码以及开源项目

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...

Global site tag (gtag.js) - Google Analytics