Extjs中利用Menu和GridPanel生成一个TriggerField

7 篇文章 0 订阅
Extjs中TriggerField是专门生成下拉框功能的,它是DataField,TimeField和Combox的父类,在这里提供了一个利用Menu和GridPanel生成一个TriggerField的例子。Extjs是3.2版本的。

jsp文件:


<html>

<head>

<script type="text/javascript"></script>

<link rel="stylesheet" type="text/css" href="./ext/resources/css/ext-all.css">

<script type="text/javascript" src="./ext/adapter/ext/ext-base.js"></script>

<script type="text/javascript" src="./ext/ext-all.js"></script>

<script type="text/javascript" src="./js/form.js"></script>

<link rel="stylesheet" type="text/css" href="./css/menu.css">

</head>

<body>

<div id="container">

<div id="form"></div>

</div>

</body>

</html>


js文件:

form.js

Ext.onReady(function(){


var cm = new Ext.grid.ColumnModel([

{header:'编号',dataIndex:'id',width:50,sortable:true,

editor:new Ext.grid.GridEditor(

new Ext.form.NumberField({

allowBlank:false,

allowNegative:false,

maxValue:10

})

)},

{header:'名称',dataIndex:'name',width:100,sortable:true},

{header:'性别',dataIndex:'sex'},

{header:'描述',dataIndex:'desc',width:153},

{header:'日期',dataIndex:'date',type:'date',renderer:Ext.util.Format.dateRenderer('Y年m月d日')},

{header:'color',dataIndex:'color'}

]);

var data = [

['1','北京','male','首都','2013-06-12','#FBF8BF'],

['2','上海','female','东方明珠','2013-06-12','#99CC99'],

['3','天津','female','港口城市','2013-06-12'],

['4','重庆','male','最年轻的直辖市','2013-06-12','#F5C0C0']

];

var store = new Ext.data.Store({

proxy:new Ext.data.MemoryProxy(data),

reader:new Ext.data.ArrayReader({},[

{name:'id'},

{name:'name'},

{name:'sex'},

{name:'desc'},

{name:'date',type:'date',dateFormat:'Y-m-d'},

{name:'color'}

])

});


var grid = new Ext.grid.EditorGridPanel({

store:store,

cm:cm,

width:650,

height:120,

stripeRows:true,

loadMask:true,

viewConfig:{

forceFit:true,

enableRowBody:true,

columnsText:'显示的列',

sortAscText:'升序',

sortDescText:'降序',

scrollOffset:1

}

});

store.load();


var menu = new Ext.menu.Menu({

items:[grid]

});

var triggerField = new Ext.form.TriggerField({

fieldLabel:'选择',

name:'name',

onSelect:function(record){},

onTriggerClick:function(){

if(this.menu == null){

this.menu = menu;

}

this.menu.show(this.el, 'tl-bl?');//弹出的菜单的左上角或左下角与Ext.form.TriggerField对齐

}

});


grid.on('rowclick',function(grid,rowIndex,e){

menu.hide();//选择后隐藏menu

triggerField.setValue(rowIndex);//设置行号

});

var form = new Ext.form.FormPanel({

title:'form',

frame:true,

renderTo:'form',

items:[triggerField]

});

});

截图如下:
[img]http://g.hiphotos.bdimg.com/album/pic/item/03087bf40ad162d99494e98210dfa9ec8a13cd32.jpg[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值