日期:2014-05-16 浏览次数:20920 次
今天花了1下午时间研究出了ComboBox+Ajax+分页联动效果.ext学习初步见效
下面代码直接就能运行,用list模拟了数据库中取数据
以下是目录结构

?以下是代码
test1.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>测试1</title>
<link rel="stylesheet" href="../extjs/resources/css/ext-all.css" type="text/css"></link>
<link rel="stylesheet" type="text/css" href="../styles.css">
<script type="text/javascript" src="../extjs/ext-base.js"></script>
<script type="text/javascript" src="../extjs/ext-all.js"></script>
<script type="text/javascript" src="../extjs/ext-lang-zh_CN.js"></script>
<script type="text/javascript" src="test1/test1.js" charset="utf-8"></script>
</head>
<body>
</body>
</html>
?
?test1.js
Ext.onReady(function(){
//设置省份数据源storeProvinces
var storeProvinces = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({url: "../ProvincesJsonServlet"}),
reader: new Ext.data.JsonReader({}, [
{name: "provincesId", type: "int", mapping: "provincesId"},
{name: "provincesName", type: "string", mapping: "provincesName"}
])
});
//创建组件comboProvinces,省份下拉框
var comboProvinces = new Ext.form.ComboBox({
renderTo: Ext.getBody(),
triggerAction: "all",
store: storeProvinces,
displayField: "provincesName",
valueField: "provincesId",
mode: "remote",
readOnly: true,
emptyText: "请选择省份",
listeners:{
//监听下拉选择事件
select:function(combo,record,index){
//设置数据源
storeCities.proxy= new Ext.data.HttpProxy({url: "../CitiesJsonServlet?provincesId="+comboProvinces.getValue()});
//传参start,limit
storeCities.load({params:{start:0,limit:5}});
//清空comboCities
comboCities.clearValue();
}
}
});
//设置城市数据源storeCities
var storeCities = new Ext.data.Store({
proxy: new Ext.data.HttpProxy(),
reader: new Ext.data.JsonReader({
totalProperty: "totalProperty", //总记录数
root: "root" //所有的数据(json对象数组)
}, [
{name: "cityId", type: "int", mapping: "cityId"}, //设置名称、类型、映射关系
{name: "cityName", type: "string", mapping: "cityName"}
])
});
//创建组件comboCities,城市下拉框
var comboCities = new Ext.form.ComboBox({
store: storeCities, //数据源
emptyText:'请选择地区', //空值时显示
mode: 'remote', //远程数据
pageSize: 5, //分页大小
triggerAction: 'all',
displayField: "cityName", //显示值
valueField :"cityId", //实际值
renderTo: Ext.getBody(),
readOnly: true, //只读
listWidth: 300 //下拉宽度
});
});
??web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>ProvincesJsonServlet</servlet-name>
<servlet-class>ajax.ProvincesJsonServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>CitiesJsonServlet</servlet-name>
<servlet-class>ajax.CitiesJsonServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ProvincesJsonServlet</servlet-name>
<url-pattern>/ProvincesJsonServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
&l