Extjs实现多选下拉框示例:自定义显示与复选样式
4星 · 超过85%的资源 需积分: 9 83 浏览量
更新于2024-09-19
3
收藏 5KB TXT 举报
在ExtJS中,复选下拉框是一个功能强大的组件,用于提供用户在一组选项中进行多选操作。这个例子展示了如何在ExtJS应用中创建一个带有复选功能的下拉列表,以便用户可以根据需求选择多个选项。
首先,我们需要准备数据,这里使用了一个名为`data`的数组,包含了五个对象,每个对象具有`id`和`name`两个字段,代表了下拉框中的选项。数据被存储在一个`JsonStore`中,这是ExtJS中用于管理和操作数据的类,它会将数据映射到`id`和`name`字段。
```javascript
var data = [
{id: "aaa", name: "小明"},
{id: "bbb", name: "张三"},
{id: "ccc", name: "李四"},
{id: "ddd", name: "多多"},
{id: "eee", name: "袁华"}
];
var testStore = new Ext.data.JsonStore({
fields: ['id', 'name']
});
testStore.loadData(data);
```
接下来,我们创建了一个`Panel`容器来展示这个复选下拉框,使用了`multicombo`组件,它是`ComboBox`的扩展,具备了复选功能。该组件的属性设置包括`store`(数据源)、`valueField`(值对应的字段)、`displayField`(显示的字段)等。同时,我们设置了`mode`为'local',表示本地模式,即数据存储在客户端;`forceSelection`为true,确保至少有一个选项被选中;`hiddenName`设置为'test',用于表单提交时的数据绑定;`editable`属性为true,允许用户编辑;`triggerAction`为'all',表示当用户点击或按键触发时,所有选项都会响应;并指定了宽度和位置。
```javascript
var panel = new Ext.Panel({
layout: "absolute",
title: "测试",
width: 300,
height: 100,
frame: true,
items: [
{
xtype: "label", x: 10, y: 10, width: 80, text: ""
},
{
xtype: 'multicombo',
store: testStore,
valueField: "id",
displayField: "name",
labelSeparator: '',
displaySeparator: ';', // 设置分隔符
valueSeparator: ',', // 设置值的分隔符
mode: 'local',
forceSelection: true,
hiddenName: 'test',
editable: true,
triggerAction: 'all',
width: 200,
x: 90,
y: 5
}
]
});
panel.render("aaa"); // 渲染组件到页面上
```
为了实现复选框样式的切换,如选中和未选中的状态变化,示例代码中还涉及CSS样式处理。具体地,通过设置`.checked`和`.unchecked`的背景图片,可以为选中和未选中的选项分别应用不同的视觉反馈。这里假设`../images/default/menu/checked.gif`和`../images/default/menu/unchecked.gif`是对应的选中和未选中状态的背景图片,需要确保已经包含了这些图片,并且`ext-all.css`文件已包含了组合框所需的样式,以支持这些自定义样式。
总结来说,这段代码演示了如何在ExtJS中创建一个带有多选功能的下拉框组件,用户可以通过这个组件在预设的选项中选择多个,并且还展示了如何定制其外观和行为。通过结合数据管理、组件配置和CSS样式,可以构建出符合需求的交互式界面。
2012-03-07 上传
2012-03-28 上传
2018-06-16 上传
2010-12-05 上传
2019-03-20 上传
2020-12-10 上传
wancheng8
- 粉丝: 0
- 资源: 4
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍