EXT核心API详解(十四)_Ext.Button/Ext.SplitButton/Ext.CycleButton

本文详细介绍了ExtJS中的三种按钮组件:Ext.Button、Ext.SplitButton及Ext.CycleButton。包括它们的属性、方法、事件及使用示例。通过本文,读者可以了解到如何创建具有不同功能的按钮,例如带有下拉菜单的按钮和可在多个状态间切换的按钮。
[size=small][color=red][b]Ext.Button[/b][/color]
简单的按钮类
[color=red]公有属性:[/color]
[b]disabled : Boolean[/b]
允许?
[b]hidden : Boolean[/b]
隐藏?
[b]pressed : Boolean[/b]
按下?
[color=red]方法 [/color][继承来的忽略]
[b]Button( Object config )[/b]
构造可选config{
clickEvent : String, //handler响应的事件,默认是click
cls : String, //样式
disabled : Boolean, //禁止
enableToggle : Boolean,//允许在按下没按下之间切换,添加移除x-btn-pressed样式类
handleMouseEvents : Boolean,//允许使用移入移出按下事件,默认是真
handler : Function, //响应clickEvent定义的事件
hidden : Boolean, //隐藏
icon : String, //图标文件地址,如果修改x-btn-text-icon样式类可以重定义默认icon
iconCls : String, //和icon功能类似,但使用设定了background-image属性的样式定义
menu : Mixed //如果需要,可以为按钮定义菜单
menuAlign : String, //菜单对齐方式,默认值是tl-bl
minWidth : Number, //最小宽度
pressed : Boolean, //是否按下
repeat : Boolean/Object,//是否需要重复定义鼠标按下事件,也可以是一个Ext.util.ClickRepeater配置对象
scope : Object, //handler事件的范围
tabIndex : Number, //table键顺序
text : String, //文本
toggleGroup : String, //如果定义一组enableToggle为真且toggleGroup值相同的button对象,这些对象[color=red]同一时间内将只有一个处于按下状态[/color]
tooltip : String/Object, //提示信息,可以是一个字符串或QuickTips的配置对象
tooltipType : String, //可选值"qtip"(默认)或"title"之一
type : String //可选值"submit"/"reset"/"button"(默认)之一
}
[b]focus() : void[/b]
//得到焦点
[b]getText() : String[/b]
//取得文本
[b]hasVisibleMenu() : Boolean[/b]
//有可视的菜单?
[b]hideMenu() : void[/b]
//隐藏菜单
[b]initComponent() : void[/b]
//初始化容器
[b]setHandler( Function handler, [Object scope] ) : void[/b]
//设置事件处理方法
[b]setText( String text ) : void[/b]
//设置文本
[b]showMenu() : void[/b]
//显示菜单
[b]toggle( [Boolean state] ) : void[/b]
//切换按下状态
[color=red]示例:[/color]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Untitled Page</title>
<link rel="stylesheet" rev="stylesheet" href="/css/ext-all.css" type="text/css" media="all" />
<script. type="text/javascript" src="/scripts/adapter/ext/ext-base.js"></script>
<script. type="text/javascript" src="/scripts/ext-all.js"></script>
<style. type="text/css">
/*--加入样式背景好直观一点*/
.x-btn-pressed button{
background-color:red;
}
</style>
<script. type="text/javascript">
Ext.onReady(function(){
//有菜单的按钮
function onItemCheck(item){
Ext.MessageBox.alert("点击事件",String.format("您选择了{0}",item.text));
}
var menu = new Ext.menu.Menu({
id: 'mainMenu',
items: [
{
text: 'menu1',
handler: onItemCheck
},
{
text: 'menu2',
handler: onItemCheck
}]
});
var button=new Ext.Button({
renderTo:Ext.getBody(),
text:'按我',
menu:'mainMenu'
});
//有状态的探钮
new Ext.Button({
renderTo:Ext.getBody(),
text:'toggle button ',
enableToggle:true
});
//分组的有状态按钮
new Ext.Button({
renderTo:Ext.getBody(),
text:'toggle button 1',
enableToggle:true,
toggleGroup:'toggleGroup',
handler: onItemCheck
});
new Ext.Button({
renderTo:Ext.getBody(),
text:'toggle button 2',
enableToggle:true,
toggleGroup:'toggleGroup',
handler: onItemCheck
});
});
</script>
</head>
<body>
</body>
</html>

[color=red][b]Ext.SplitButton[/b][/color]
上例中的带菜单按钮还不专业,于是有了Ext.SplitButton,专门为带[color=red]有下拉菜单的按钮[/color]设计的
[color=red]方法:[/color]
[b]SplitButton( Object config )[/b]
构造,config中加入了{
arrowHandler : Function,
arrowTooltip : String
}
[b]setArrowHandler( Function handler, [Object scope] ) : void[/b]
设置下拉箭头的点击事件
[color=red]事件:[/color]
[b]arrowclick : ( MenuButton this, EventObject e )[/b]
[color=red]使用示例:[/color]
比如上例中的菜单按钮可以改为
function onItemCheck(item){
Ext.MessageBox.alert("点击事件",String.format("您选择了{0}",item.text));
}
function showMenu(obj){
Ext.MessageBox.alert("点击下拉",obj.getXTypes() )
}
Ext.QuickTips.init();
var button=new Ext.SplitButton({
renderTo:Ext.getBody(),
arrowHandler : showMenu,
handler: onItemCheck,
arrowTooltip : "更多",
text:'按我',
menu:'mainMenu'
});

[color=red][b]Ext.CycleButton[/b][/color]
这是一个SplitButton的实用子类,[color=red]用于在多个item之间切换状态[/color],当然它也会带有menu可供选择,也可以直接点击按键在item之间切换
[color=red]方法:[/color]
CycleButton( Object config )
构造,config新增配置项{
changeHandler : Function, //状态切换时的处理事件
items : Array, //items应该是menu item的数组
prependText : String, //前导text
showText : Boolean, //追加item的text到按钮显示
}
[b]getActiveItem() : Ext.menu.CheckItem
setActiveItem( Ext.menu.CheckItem item, Boolean suppressEvent ) : void[/b]
得到/设置活动选项
[b]toggleSelected() : void[/b]
切换选择项,相当于点击一次按钮
[color=red]示例[/color]
new Ext.CycleButton({
renderTo:Ext.getBody(),
showText: true,
prependText: 'View as ',
items: [{
text:'text only',
iconCls:'view-text',
checked:true
},{
text:'HTML',
iconCls:'view-html'
},{
text:'XML',
iconCls:'view-html'
}
],
changeHandler:function(btn, item){
Ext.MessageBox.alert('Change View', item.text);
}
});[/size]
1、Ext类 ………………………………… 2 2、Array类 …………………………… 4 3、Number类 …………………………… 4 4、String类 …………………………… 4 5、Date类 ……………………………… 5 6、Function类 ………………………… 6 7、Ext.Element类 ………………………… 7 8、Ext.DomQuery类 ………………… 13 9、Ext.DomHelper类 …………………… 14 10、Ext.Template类 …………………… 14 11、Ext.EventManager类 ……………… 15 12、Ext.EventObject类 ………………… 15 13、Ext.CompositeElement类 ………… 16 14、Ext.CompositeElementLite类 ……… 16 15、Ext.Fx类 …………………………… 16 16、Ext.KeyNav类 ……………………… 19 17、Ext.KeyMap类 …………………… 19 18、Ext.util.JSON类 ……………………… 20 19、Ext.util.Format类 ………………… 20 20、Ext.util.DelayedTask类 ……………… 20 21、Ext.util.TaskRunner类 …………… 21 22、Ext.util.TextMetrics类 …………… 21 23、Ext.XTemplate类 ………………… 21 24、Ext.data.Connection类 ……………… 22 25、Ext.Ajax类 ………………………… 22 26、Ext.data.Record类 ………………… 23 27、Ext.data.DataProxy类 …………… 24 28、Ext.data.HttpProxy类 …………… 24 29、Ext.data.MemoryProxy类 ……… 25 30、Ext.data.ScriptTagProxy类 ………… 25 31、Ext.data.DataReader类 ……………26 32、Ext.data.ArrayReader类 …………… 26 33、Ext.data.JsonReader类 …………… 26 34、Ext.data.XmlReader类 …………… 27 35、Ext.data.Store类 …………………… 28 36、Ext.data.GroupingStore类 ………… 32 37、Ext.data.SimpleStore类 ………… 34 38、Ext.data.Tree类 …………………… 34 39、Ext.data.Node类 ………………… 34 40、Ext.Action类 ……………………… 35 41、Ext.Button类 …………………… 36 42、Ext.SplitButton类 ……………… 38 43、Ext.CycleButton类 ……………… 39 44、Ext.form.BasicForm类 …………… 40 45、Ext.form.Field类 …………………… 41 46、Ext.form.Checkbox类 …………… 42 47、Ext.form.Radio类 ………………… 43 48、Ext.form.HtmlEditor类 …………… 43 49、Ext.form.TextField类 …………… 44 50、Ext.form.NumberField类 ………… 44 51、Ext.form.TextArea类 …………… 45 52、Ext.form.TriggerField类 ……… 45 53、Ext.form.DateField类 ………… 45 54、Ext.form.ComboBox类 ……………… 46 55、Ext.form.TimeField类 ………… 47 56、Ext.menu.Menu类 ………………… 50 57、Ext.menu.BaseItem类 …………… 50 58、Ext.menu.Adapter类 ……………… 51 59、Ext.menu.Item类 ………………… 51 60、Ext.menu.CheckItem类 …………… 51 61、Ext.menu.Separator类 ………… 52 62、Ext.menu.TextItem类 …………… 52 63、Ext.Toolbar类 …………………… 55 64、Ext.Toolbar.Item类 ……………… 56 65、Ext.Toolbar.Separator类 ……… 56 66、Ext.Toolbar.Spacer类 …………… 56 67、Ext.Toolbar.TextItem类 ……… 56 68、Ext.Toolbar.Fill类 ……………… 56 69、Ext.grid.ColumnModel类 ……… 58 70、Ext.grid.PropertyColumnModel类 … 59 71、Ext.grid.GridView类 …………… 59 72、Ext.grid.GroupingView类 ………… 60 73、Ext.grid.EditorGridPanel类 ……… 62 74、Ext.grid.PropertyGrid类 …………… 65
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值