当前位置: 首页 > news >正文

extjs中store获取后台数据_Extjs 后台读取数据的下拉框

今天参照项目里的列子写了个远程获取数据的下拉框

js部分代码如下

Ext.onReady(function() {

var newStore = new Ext.data.SimpleStore({

fields : ['key', 'value']

});

new Ext.Panel({

width : 500,

height : 300,

applyTo : 'show',

bodyStyle : 'padding:10px',

layout : 'table',

layoutConfig : {

border : '10px',

columns : 2

},

items : [{

html : '下步工作:'

}, new Ext.form.ComboBox({

id : 'aaa',

store : newStore,

displayField : 'value',

mode : 'local',

typeAhead : true,

forceSelection : true,

triggerAction : 'all',

emptyText : '请选择 .... ',

selectOnFocus : true

})],

tbar : new Ext.Toolbar({

items : [{

xtype : 'button',

text : 'data1',

// cls:'blist',

handler : function(e) {

// init data1

Ext.Ajax.request({

params : {

param : 'a'

},

url : './servlet/DataServlet',

success : function(response) {

newStore.removeAll();

var result = Ext.util.JSON

.decode(response.responseText);

for (var i = 0; i < result.length; i++) {

var item = new Object();

item.key = result[i].key;

item.value = result[i].value;

newStore.add(new Ext.data.Record(item));

}

//清除下拉框已选值,不知道怎么写,谁知道把这代码补下,谢谢

},

failure : function() {

alert("handler failure ");

}

});

}

}, {

xtype : 'button',

text : 'data2',

// cls:'blist',

handler : function() {

// init data2

Ext.Ajax.request({

params : {

param : 'b'

},

url : './servlet/DataServlet',

success : function(response) {

newStore.removeAll();

var result = Ext.util.JSON

.decode(response.responseText);

for (var i = 0; i < result.length; i++) {

var item = new Object();

item.key = result[i].key;

item.value = result[i].value;

newStore.add(new Ext.data.Record(item));

}

//清除下拉框已选值,不知道怎么写,谁知道把这代码补下,谢谢

},

failure : function() {

alert("handler failure ");

}

});

}

}]

})

});

});

后台servlet代码如下

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String param = request.getParameter("param");

StringBuffer jsonStr = new StringBuffer();

if(param.equals("a")){ //返回 A 类

jsonStr.append("[");

jsonStr.append("{key:'a1',value:'jack1'}");

jsonStr.append(",{key:'a2',value:'jack2'}");

jsonStr.append(",{key:'a3',value:'jack3'}");

jsonStr.append(",{key:'a4',value:'jack4'}");

jsonStr.append(",{key:'a5',value:'jack5'}");

jsonStr.append("]");

}else{ //返回 B 类

jsonStr.append("[");

jsonStr.append("{key:'b1',value:'age1'}");

jsonStr.append(",{key:'b2',value:'age2'}");

jsonStr.append(",{key:'b3',value:'age3'}");

jsonStr.append(",{key:'b4',value:'age4'}");

jsonStr.append(",{key:'b5',value:'age5'}");

jsonStr.append("]");

}

request.setAttribute("json", jsonStr.toString());

request.getRequestDispatcher("../json.jsp").forward(request, response);

}

json.jsp代码如下

实现的功能很简单,就是点工具栏上的两个按钮,下拉框分别加载两类不同的数据做为下拉选项。这代码基本上也能实现动态加载下拉框选项数据的功能。

比较糟的是,数据格式用的是 数组+json ,其实我知道数据格式完全可以用数组就好(而 newStore 的类型也换成  Ext.data.ArrayStore),但我不知道具体怎么写,很囧!

先留在这里吧,至少功能实现了,以后再来改

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2010-10-06 16:02

浏览 10045

评论

相关文章:

  • mysql建数据库实例_MySQL数据库基础(四)——MySQL数据库创建实例
  • mysql是基于关系模型的数据库_MySQL系列:MySQL关系型数据库架构
  • mysql nocount_存储过程之SET NOCOUNT ON/OFF 含义
  • mysql spatial简介_详细介绍mysql索引类型:FULLTEXT、NORMAL、SPATIAL、UNIQUE
  • mysql联立两个表_mysql同时查询两个表
  • mysql 1308_MySQL恢复数据报ERROR 1308 : LEAVE with no matching label
  • macos 在线安装mysql_在MACOSX上安装MYSQL
  • vb mysql 设置数据源_总结 vb与数据库的连接方法
  • h+后台主题ui框架_开源推荐 - EAdmin开箱即用的后台UI框架
  • include 路径_最短路径的算法:Floyd算法
  • 2表关联查询的mysql代码_两个服务器上的两个数据库表进行关联查询(显示列表)...
  • python compare()_Python Speech Compare
  • n阶完全图边和顶点关系。_抽象代数23 群元素的阶和循环群
  • python中文件操作的相关函数是_python 操作windows下目录的相关函数
  • mysql根据当前时间戳更新不好使_Mysql – 尝试更新时间戳列时.它无法更新
  • golang中接口赋值与方法集
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • HTTP 简介
  • JAVA并发编程--1.基础概念
  • js数组之filter
  • SpriteKit 技巧之添加背景图片
  • v-if和v-for连用出现的问题
  • vue 配置sass、scss全局变量
  • 订阅Forge Viewer所有的事件
  • 前端
  • 由插件封装引出的一丢丢思考
  • (31)对象的克隆
  • (二)JAVA使用POI操作excel
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (译)2019年前端性能优化清单 — 下篇
  • (转)Oracle存储过程编写经验和优化措施
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • ./configure,make,make install的作用(转)
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .Net Web窗口页属性
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .NET企业级应用架构设计系列之应用服务器
  • .NET中 MVC 工厂模式浅析
  • .net中应用SQL缓存(实例使用)
  • @EnableAsync和@Async开始异步任务支持
  • @在php中起什么作用?
  • [ vulhub漏洞复现篇 ] JBOSS AS 4.x以下反序列化远程代码执行漏洞CVE-2017-7504
  • [ChromeApp]指南!让你的谷歌浏览器好用十倍!
  • [LeetCode] 626. 换座位
  • [LeetCode]: 145: Binary Tree Postorder Traversal
  • [Linux]Ubuntu noVNC使用