论坛首页 Web前端技术论坛

EXT自定义窗体加载数据

浏览 4970 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-02-27  
我定义了一个自定义窗体,代码如下,其中有一个dataurl属性,是自定义的,主要的功能就是传递自定义窗体要加载数据的url
EditBranchWindow = Ext.extend(Ext.Window, {
		title : '修改',
		width : 350,
		height : 140,
		dataurl : '',
		collapsible : true,
		modal : true,
		defaults : {
			border : false
		},
		buttonAlign : 'center',
		createFormPanel : function() {
			var myproxy = new Ext.data.HttpProxy({
				url : this.dataurl,
				method : 'POST'
			})
			var myds = new Ext.data.Store({
				proxy : myproxy,
				reader : new Ext.data.JsonReader({
					root : 'users',
					totalProperty : 'total',
					successProperty : 'success',
					id : 'id'
				}, [{
					name : 'name',
					mapping : 'name'
				}, {
					name : 'email',
					mapping : 'email'
				}, {
					name : 'id',
					mapping : 'id'
				}])
			});
			/*
			 * var sstore = new Ext.data.SimpleStore({ proxy:proxy });
			 */
			myds.load();
			var mcombo = new Ext.form.ComboBox({
				store : myds,
				displayField : 'name',
				emptyText : '请选择一个用户...',
				// valueField : 'id',
				fieldLabel : '支部管理员',
				id : 'master.id',
				name : 'master.id'
			});

			var editpanel = new Ext.form.FormPanel({
				bodyStyle : 'padding-top:6px',
				defaultType : 'textfield',
				labelAlign : 'right',
				labelWidth : 100,
				labelPad : 0,
				frame : true,
				defaults : {
					allowBlank : false,
					width : 158
				},
				items : [{
					name : 'branch.title',
					fieldLabel : '支部名称',
					blankText : '支部名称不能为空'
				}, mcombo]
			});
			return editpanel;
		},
		subdata : function() {
			if (this.fp.form.isValid()) {
				this.fp.form.submit({
					waitMsg : '正在提交数据...',
					url : 'saveBranch.action',
					success : function(form, action) {
						window.location.reload();
					},
					failure : function(form, action) {
						form.reset();
						Ext.MessageBox.show({
							title : '警告',
							msg : '发生错误!',
							buttons : Ext.MessageBox.OK,
							icon : Ext.MessageBox.ERROR
						});
					}
				});
			} else {
				Ext.MessageBox.alert('提示', '请填写完整');
			}
		},
		initComponent : function() {
			EditBranchWindow.superclass.initComponent.call(this);
			this.fp = this.createFormPanel();
			this.add(this.fp);
			this.addButton('提交', this.subdata, this);
			this.addButton('重置', function() {
				this.fp.form.reset();
			}, this);
		}
	});

在工具栏的按钮单击事件以后加载数据,代码如下:
var newButtonclick = function() {
		var win = new EditBranchWindow({
			title : '添加',
			dataurl : 'new.action'
		});
		win.show();
	};

new.action返回的数据也是正常的,但是combobox无法显示数据,是什么原因?
   发表时间:2008-02-28  
没有人知道吗?我用firebug调试的时候,发现ds的数据已经有了,但是combobox里面还是没有数据显示
0 请登录后投票
   发表时间:2008-02-28  
请教了高手,问题解决
var mcombo = new Ext.form.ComboBox({
			typeAhead: true,
			store : myds,
			displayField : 'name',
			emptyText : '请选择一个用户...',
			valueField : 'id',
			fieldLabel : '支部管理员',
			id : 'master.id',
			name : 'master.id',
			mode:'local'
		});

多了一个mode:'local'就好了,后来在ff里面运行的时候,发现在combo里面输入4个字符,列表就能显示出来,原来combo默认会从远程取数据
0 请登录后投票
   发表时间:2008-07-30  
我想问一下:主界面是这样的:左侧是树形菜单,右侧是iframe。假如某个界面有两个combobox,修改的时候,怎么同时绑定displayField和valueField 值!我发现在firefox中运行正常,但是在ie中总有一个combobox显示的是valueField的值!
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics