本篇要登场的有三个控件,分别是滚轴控件、进度条控件和编辑控件。
一、滚轴控件 Ext.slider
1.滚轴控件的定义
下面我们定义三个具有代表意义滚轴控件,分别展示滚轴横向、纵向,以及单值、多值选择的特性:
[html]
<h1>滚轴控件</h1>
<div class="content">
<h2>横向,初始值50</h2>
<div id="slider1"></div> <h2>纵向,带提示</h2>
<div id="slider2"></div> <h2>多值,自定义提示</h2>
<div id="slider3"></div>
</div>
[Js]
//横向,初始值50
var slider1 = Ext.create('Ext.slider.Single', {
renderTo: 'slider1',
width: 214,
minValue: 0,
maxValue: 100,
value: 50
}); //纵向,带提示
new Ext.create('Ext.slider.Single', {
renderTo: 'slider2',
height: 150,
minValue: 0,
maxValue: 20,
vertical: true,
plugins: new Ext.slider.Tip()
}); //多值,自定义提示
var slider3 = Ext.create('Ext.slider.Multi', {
renderTo: 'slider3',
width: 214,
minValue: 0,
maxValue: 20,
values: [5, 12],
plugins: new Ext.slider.Tip({
getText: function (thumb) {
return Ext.String.format('当前:<b>{0}/20</b>', thumb.value);
}
})
});
2.获取、设置滚轴控件的值
[html]
<h1>操作滚轴控件</h1>
<div class="content">
<button id="button1">设置滚轴1的值为10</button>
<button id="button2">获取滚轴1的值</button>
<button id="button3">设置滚轴3的值为10,15</button>
<button id="button4">获取滚轴3的值集合</button>
</div>
[Js]
//设置滚轴1的值为10
Ext.fly("button1").on('click', function () {
slider1.setValue(10);
}); //获取滚轴1的值
Ext.fly("button2").on('click', function () {
Ext.MessageBox.alert("获取值", "滚轴1的值:" + slider1.getValue());
}); //设置滚轴3的值为10,15
Ext.fly("button3").on('click', function () {
slider3.setValue(0, 10);
slider3.setValue(1, 15);
}); //获取滚轴3的值集合
Ext.fly("button4").on('click', function () {
Ext.MessageBox.alert("获取值", "滚轴3的值集合:" + slider3.getValues());
});
3.效果展示
二、进度条控件 Ext.ProgressBar
1.加载进度条
[html]
<div class="content">
<button id="button1">执行</button>
<div id="p1" style="width: 300px;"></div>
</div><br />
[Js]
//加载进度条
var progressBar1 = Ext.create("Ext.ProgressBar", {
id: "progressBar1",
text: '准备中...',
renderTo: 'p1'
});
Ext.fly("button1").on('click', function () {
//模拟加载环境
var f = function (v) {
return function () {
var i = v / 12;
progressBar1.updateProgress(i, '进度:' + v + '/12');
if (v == 12) {
Ext.Msg.alert("提示", "加载完毕!");
progressBar1.reset(); //复位进度条
progressBar1.updateText("完成。");
}
};
};
for (var i = 1; i < 13; i++) {
setTimeout(f(i), i * 200);
}
});
2.等候进度条
[html]
<div class="content">
<button id="button2">执行</button>
<div id="p2"></div>
<span id="p2text"></span>
</div><br />
[Js]
//等候进度条
var pbar2 = Ext.create("Ext.ProgressBar", {
id: "progressBar2",
renderTo: 'p2',
width: '150px'
});
pbar2.on('update', function (val) {
//每次更新可以执行的动作
Ext.fly('p2text').dom.innerHTML += '>';
});
Ext.fly("button2").on('click', function () {
Ext.fly('p2text').update('正在启动windows2000:');
pbar2.wait({
interval: 200, //每次更新的间隔周期
duration: 5000, //进度条运作时间的长度,单位是毫秒
increment: 5, //进度条每次更新的幅度大小,表示走完一轮要几次(默认为10)。
fn: function () { //当进度条完成自动更新后执行的回调函数。该函数没有参数。
Ext.fly('p2text').update('完成。');
}
});
});
3.等候进度条,等待第三方事件
[html]
<div class="content">
<button id="button3">执行</button>
<div id="p3"></div>
<span id="p3text"></span>
</div>
[Js]
//等候进度条,当第三方事件结束时,停止。
var pbar3 = Ext.create("Ext.ProgressBar", {
renderTo: 'p3',
width: '250px'
}); Ext.fly("button3").on('click', function () {
pbar3.wait({
interval: 100,
increment: 5
});
Ext.fly('p3text').update('第三方事件正在执行,请稍候....'); setTimeout(function () {
pbar3.reset();
Ext.fly('p3text').update('执行完毕.');
}, 5000);
});
4.效果展示
三、编辑控件 Ext.Editor
编辑控件可以作用在一般html元素或者其他ext基本控件上,从而然这些基本元素和控件具备了编辑某些值的能力。
1.用文本框编辑普通文本
下面通过一个编辑控件作用在span标签上,双击该标签即可编辑该标签的文本类容。
[html]
<h1>用文本框编辑普通文本</h1>
<div class="content">
<span id="span1">请双击我修改文字</span>
</div>
[Js]
//用文本框编辑普通文本
var editor1 = new Ext.Editor({
shadow: false,
completeOnEnter: true, //按回车时自动完成
cancelOnEsc: true, //按ESC自动退出编辑
updateEl: true, //有变化时更新
ignoreNoChange: true, //不理会没有变化的情况
listeners: {
complete: function (editor, value, oldValue) {
Ext.Msg.alert('文本被改变', "从“" + oldValue + "” 变为“" + value + "”");
}
},
field: {
allowBlank: false,
xtype: 'textfield',
width: 150,
selectOnFocus: true
}
}); Ext.get("span1").on('dblclick', function (event, span1_dom) {
editor1.startEdit(span1_dom);
});
效果如下:
处于编辑状态时:
2.用下拉列表编辑
这个例子要修改Ext.Panel控件的标题。
[html]
<h1>用下拉列表编辑</h1>
<div class="content" id="div2"> </div>
[Js]
//用下拉列表编辑
var editor2 = new Ext.Editor({
shadow: false,
completeOnEnter: true,
cancelOnEsc: true,
updateEl: true,
ignoreNoChange: true,
listeners: {
complete: function (editor, value, oldValue) {
Ext.Msg.alert('文本被改变', "从“" + oldValue + "” 变为“" + value + "”");
}
},
field: {
width: 110,
id: "combo1",
//renderTo: 'div2',
triggerAction: 'all',
xtype: 'combo',
editable: false,
forceSelection: true,
store: ['下拉项1', '下拉项2', '下拉项3']
}
}); var panel = new Ext.Panel({
renderTo: "div2",
width: 200,
height: 50,
collapsible: true,
layout: 'fit',
title: '请双击标题',
listeners: {
afterrender: function (panel) {
panel.header.titleCmp.textEl.on('dblclick', function (event, label1_dom) {
editor2.startEdit(label1_dom);
});
}
}
});
效果如下:
处于编辑状态时:
ExtJs4 笔记(8) Ext.slider 滚轴控件、 Ext.ProgressBar 进度条控件、 Ext.Editor 编辑控件的更多相关文章
-
[转载]ExtJs4 笔记(8) Ext.slider 滚轴控件、 Ext.ProgressBar 进度条控件、 Ext.Editor 编辑控件
作者:李盼(Lipan)出处:[Lipan] (http://www.cnblogs.com/lipan/)版权声明:本文的版权归作者与博客园共有.转载时须注明本文的详细链接,否则作者将保留追究其法律 ...
-
C# 时间控件 竖直进度条 饼图显示 仪表盘 按钮基础控件库
Prepare 本文将使用一个NuGet公开的组件来实现一些特殊的控件显示,方便大家进行快速的开发系统. 在Visual Studio 中的NuGet管理器中可以下载安装,也可以直接在NuGet控制台 ...
-
Android学习笔记- ProgressBar(进度条)
本节引言: 本节给大家带来的是Android基本UI控件中的ProgressBar(进度条),ProgressBar的应用场景很多,比如 用户登录时,后台在发请求,以及等待服务器返回信息,这个时候会用 ...
-
CListCtrl控件中显示进度条
CListCtrl控件的subitem中显示进度条 http://www.codeproject.com/Articles/6813/List-Control-Extended-for-Progres ...
-
RN控件之ProgressBarAndroid进度条
/** * Sample React Native App * https://github.com/facebook/react-native */ 'use strict'; import Rea ...
-
[Xcode 实际操作]四、常用控件-(12)环形进度条控件的使用
目录:[Swift]Xcode实际操作 本文将演示环形进度条控件的使用. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit class Vi ...
-
【React Native开发】React Native控件之ProgressBarAndroid进度条解说(12)
),React Native技术交流4群(458982758).请不要反复加群! 欢迎各位大牛,React Native技术爱好者增加交流!同一时候博客左側欢迎微信扫描关注订阅号,移动技术干货,精彩文 ...
-
Android基础控件ProgressBar进度条的使用
1.简介 ProgressBar继承与View类,直接子类有AbsSeekBar和ContentLoadingProgressBar, 其中AbsSeekBar的子类有SeekBar和RatingBa ...
-
NGUI之Slider,最简单的方法做进度条。
既然标题是最简单的,那么很多东西就不需要我们自己做了,使用的是NGUI的示例,只针对初学者,接下来让我们来做一个最简单游戏设置里的声音控制. 1.导入NGUI: 2.找到NGUI的Menu示例Demo ...
随机推荐
-
python——SQL基本使用
终于学到数据库操作了,这意味着什么?以后再也不用从文件里读写数据了,过程实在太复杂了~~~为了纪念这个激动人心的时刻,一定要写一篇博客! 使用mysql数据库——增 插入一条数据 首先,还是先解释一下 ...
-
2016/9/25编写java实验报告时对synchronized(同步代码块)的一些感悟
通过此次实验,明白了多线程的设置和启动.synchronized代码块的用法.线程的优先级使用方法.知道了那几类资源是线程共享的. 我现在理解的多线程是:实例化一个继承了Thread类或实现了Runn ...
-
机器学习公开课笔记(5):神经网络(Neural Network)——学习
这一章可能是Andrew Ng讲得最不清楚的一章,为什么这么说呢?这一章主要讲后向传播(Backpropagration, BP)算法,Ng花了一大半的时间在讲如何计算误差项$\delta$,如何计算 ...
-
Linux Cache Mechanism Summary(undone)
目录 . 缓存机制简介 . 内核缓存机制 . 内存缓存机制 . 文件缓存机制 . 数据库缓存机制 1. 缓存机制简介 0x1: 什么是缓存cache 在计算机整个领域中,缓存(cache)这个词是一个 ...
-
PHP数据类型转换(字符转数字,数字转字符)
PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有: (int).(integer):转换成整形 (float).(double).(real):转换成浮点型 (string):转换成字符串 ...
-
Sticky Footer 绝对底部的两种套路
最近面了好几个前端,工作经验有高有低,居然都不知道绝对底部是什么,也没有人能说出一种实现方式,让我不禁感慨前端领域的良莠不齐 绝对底部,或者说 Sticky Footer,是一种古老且经典的页面效果: ...
-
异常-----Template user.ftl not found
freemarker 1.错误描述 java.io.FileNotFoundException: Template user.ftl not found. at freemarker.template ...
-
JAVA条件语句:if;switch case
if(布尔表达式) { //如果布尔表达式为true将执行的语句 } 如果布尔表达式为true 执行里面的代码 if...else语句: if(布尔表达式){ //如果布尔表达式的值为true } ...
-
net core 模型绑定与之前版本的不同-FromBody 必须对应Json格式
之前有一个用于七牛上传图片的Callback Url的WebAPI (之前是用.net4.0,运行正常) 代码如下: // 七牛CallBack地址,CallbackBody内容name=upload ...
-
【Zookeeper】源码分析之请求处理链(三)之SyncRequestProcessor
一.前言 在分析了PrepRequestProcessor处理器后,接着来分析SyncRequestProcessor,该处理器将请求存入磁盘,其将请求批量的存入磁盘以提高效率,请求在写入磁盘之前是不 ...