ComboBox远程获取数据

1、前台js
Ext.onReady(function() {
	var cfg = {};// 组合框配置
	cfg['fieldLabel'] = '父菜单';
	cfg['url'] = 'comboServer.jsp';
	cfg['recordType'] = 'Menu', cfg['fields'] = ['name', 'idno'];
	cfg['name'] = 'parentid';
	var combo = Ext.combo.createComboBox(cfg);

	var form = new Ext.FormPanel( {
		frame : true,
		applyTo : document.body,
		items : [combo]
	});
});


2、封装的Ext.combo
/**
 * 封装ComboBox,如
 * var cfg = {};
 * cfg['fieldLabel'] = '父菜单'; 标签
 * cfg['url'] ='comboServer.jsp'; 请求的url
 * cfg['recordType'] = 'Menu', 记录类型
 * cfg['fields'] = ['name','idno']; 
 * cfg['name'] = 'parentid';字段名称
 */
Ext.combo = {
	createComboBox : function(cfg) {
		var fields = new Array();
		fields = cfg.fields;
		var record = Ext.data.Record.create([ {
			name : fields[0]
			,
		}, {
			name : fields[1]
		}]);
		var myReader = new Ext.data.XmlReader( {
			totalRecords : "totalNum",
			record : cfg.recordType
			,
		}, record);

		var comboStore = new Ext.data.Store( {
			autoLoad : true,
			url : cfg.url,
			reader : myReader
		});

		var combo = new Ext.form.ComboBox( {
			fieldLabel : cfg.fieldLabel,
			store : comboStore,
			value : '请选择...',
			editable : false,// 不可编辑
			name : cfg.name,
			displayField : fields[0],// 显示的字段
			valueField : fields[1],// 实际值字段
			triggerAction : 'all'
		});
		return combo;
	}
};


3、comboServer.jsp,用于从数据库中获取要查询的菜单信息,并以xml格式返回

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="com.dreamoa.sys.BaseParams"%>
<%@page import="com.dreamoa.sys.Loader"%>

<%
	BaseParams bp = new BaseParams();

	Loader loader = new Loader("menu.xml", "SEL_PARENT_MENU", bp);
	response.setContentType("text/xml");
	response.getWriter().write(loader.resultsXmlString);
%>


4、hql语句如下,注意一定要查询出所有字段,原因还不清楚。即不能使用如下语句

<query>
	<queryName>SEL_PARENT_MENU</queryName>
	<queryString>select m.idno,m.name from Menu m where m.parentid='0</queryString>
</query>

只能使用下面的:
<query>
	<queryName>SEL_PARENT_MENU</queryName>
	<queryString>from Menu m where m.parentid='0'</queryString>
</query>


你可能感兴趣的:(java,jsp,xml,ext)