① extjs中,如何在textfield后面加一个按钮,并且点击按钮要调用后台方法
Ext.form.TriggerField 这个类是 TextField的子类,你创建他的实例的时候可以设定下面的属性.这个属性就是后面的图片
triggerClass : String
举个简单例子:
var comNam = new Ext.form.TriggerField({
name : 'comNam',
allowBlank: false,
blankText:"请点击文本框,进行公司选择",
fieldLabel :net.uni.in1.notBlankMark+ '公司名称',
readOnly:true,
cls:"ux-readOnly", //增加此样式,可以变灰
enableKeyEvents: true,
listeners:{
'focus': function(){
chooseCust();
}
},
triggerClass : 'view',
anchor : '90%'
});
}
② extjs中在GridPanel上添加一个搜索框 (文本框+按钮)怎么实现啊。。
直接配置到工具条tbar里就行了:
var grid = new Ext.grid.GridPanel({
id: "grid1",
title: "GridPanel实例",
renderTo: "div1",
width: 500,
height: 300,
frame: true,
tbar: [{xtype:'label',text:'请输入关键词:'},{xtype:'textfield',id:'KeyWord'},{text:'搜索',handler:function(){alert("搜索");}}
],
。。。。。//其它配置项
});
③ ExtJs 怎样给GridPanel 表格中的按钮 添加点击事件
可以通过Ext.get("btnName").on("click",add); 来添加点击事件,其中的add 就是你定义的btn的触发方法。
④ Extjs grid列表中,我用渲染的方式,在行中添加了button按钮,却不知该如何添加方法了。
从你目前这样 建议把你的addWindow定义以及show的动作写成一个在全局的最外面的方法版
onclick里只要onclick="javascript:showFunName()" 就可以调到权
要是我做的话会在controller里监听grid的cellclick( Ext.view.Table this, HTMLElement td, Number cellIndex, Ext.data.Model record, HTMLElement tr, Number rowIndex,Ext.EventObject e, Object eOpts )
事件, 用参数e.target.classname或其他什么区分是这个button再做窗口弹出的动作
⑤ 怎样为extjs写的表中的列中的按钮添加方法。
menuDisabled: true,
sortable: false,
xtype: 'actioncolumn',
width: 50,
items: [{
iconCls: 'sell-col',
tooltip: 'Sell stock',
handler: function(grid, rowIndex, colIndex) {
var rec = grid.getStore().getAt(rowIndex);
Ext.Msg.alert('Sell', 'Sell ' + rec.get('company'));
}
}, {
getClass: function(v, meta, rec) {
if (rec.get('change') < 0) {
return 'alert-col'
} else {
return 'buy-col'
}
},
getTip: function(v, meta, rec) {
if (rec.get('change') < 0) {
return 'Hold stock'
} else {
return 'Buy stock'
}
},
handler: function(grid, rowIndex, colIndex) {
var rec = grid.getStore().getAt(rowIndex),
action = (rec.get('change') < 0 ? 'Hold' : 'Buy');
Ext.Msg.alert(action, action + ' ' + rec.get('company'));
}
可以看看官方提供的样例,写的很清楚~~~
⑥ 如何为Extjs的form表单组件里面的每一个字段增加一个编辑按钮
/**
* 自定义一个带编辑控制按钮的控件
*/
Ext.define('Ext.form.ControlEditField', {
extend : 'Ext.form.FieldContainer',
alias : 'widget.controleditfield',
groupFieldType : 'textfield',
groupFieldConfig : null,
layout : 'hbox',
width : 250,
initComponent : function() {
var me = this;
me.items = [];
me.width = me.width + 50;
if (me.groupFieldConfig) {
me.groupFieldType = me.groupFieldConfig.xtype
|| me.groupFieldType;
me.items = [me.groupFieldConfig, {
xtype : 'button',
text : me.groupFieldConfig.readOnly ? '当前关' : '当前开',
width : 50,
handler : function(btn) {
var form = btn.up()
var field = form.down(form.groupFieldType);
var readonly = field.readOnly;
btn.setText(!readonly ? '当前关' : '当前开');
field.setReadOnly(!readonly);
}
}];
}
me.initLabelable();
me.initFieldAncestor();
me.callParent();
},
setValue : function(value) {
var me = this;
var field = me.down(me.groupFieldType);
if (field) {
field.setValue(value);
}
},
getValue : function() {
var me = this;
var field = me.down(me.groupFieldType);
if (field) {
return field.getValue();
}
}
});
Ext.create('Ext.form.Panel', {
title : 'FieldContainer Example',
width : 550,
bodyPadding : 10,
items : [{
xtype : 'controleditfield',
fieldLabel : 'Last Three Jobs',
labelWidth : 100,
width : 300,
groupFieldConfig : {
xtype : 'combo',
store : [['a', 'b'], ['c', 'd']]
}
}, {
xtype : 'controleditfield',
fieldLabel : 'Last Three Jobs',
labelWidth : 100,
width : 300,
id : 'test',
groupFieldConfig : {
xtype : 'textfield'
}
}, {
xtype : 'controleditfield',
fieldLabel : 'Last Three Jobs',
labelWidth : 100,
width : 300,
groupFieldConfig : {
xtype : 'datefield',
format : 'Y-m-d H:i:s'
}
}],
renderTo : Ext.getBody()
});
Ext.defer(function() {
Ext.getCmp('test').setValue("我我我我");
}, 5000);
控制函数自己写吧
⑦ 请问EXTJS4中怎么在一个GridPanel中的每一行的最后加入两个按钮比如是删除和查看
参考帮助文档:actioncolumn
Ext.create('Ext.data.Store', {
storeId:'employeeStore',
fields:['firstname', 'lastname', 'senority', 'dep', 'hired'],
data:[
{firstname:"Michael", lastname:"Scott"},
{firstname:"Dwight", lastname:"Schrute"},
{firstname:"Jim", lastname:"Halpert"},
{firstname:"Kevin", lastname:"Malone"},
{firstname:"Angela", lastname:"Martin"}
]
});
Ext.create('Ext.grid.Panel', {
title: 'Action Column Demo',
store: Ext.data.StoreManager.lookup('employeeStore'),
columns: [
{text: 'First Name', dataIndex:'firstname'},
{text: 'Last Name', dataIndex:'lastname'},
{
xtype:'actioncolumn',
width:50,
items: [{
icon: 'extjs/examples/shared/icons/fam/cog_edit.png', // Use a URL in the icon config
tooltip: 'Edit',
handler: function(grid, rowIndex, colIndex) {
var rec = grid.getStore().getAt(rowIndex);
alert("Edit " + rec.get('firstname'));
}
},{
icon: 'extjs/examples/restful/images/delete.png',
tooltip: 'Delete',
handler: function(grid, rowIndex, colIndex) {
var rec = grid.getStore().getAt(rowIndex);
alert("Terminate " + rec.get('firstname'));
}
}]
}
],
width: 250,
renderTo: Ext.getBody()
});
⑧ 你好,在线吗 请问你的ExtJS中的Grid添加按钮后,它的响应事件,是如何处理的
ExtGridPanel 有个事件
rowdblclick : ( Grid this, Number rowIndex, Ext.EventObject e )
做个小demo吧,没有测试过哦。。。。。。。。。。。。
var gridPanel = new Ext.grid.GridPanel({
region:'north',
height:200,
store:new Ext.data.SimpleStore(),
columns:[,
});
var panel = new Ext.Panel();
var container = new Ext.Panel({
layout:'border',
renderTo:'test-div',
items:[grid,panel],
height:500,width:400
});
gridPanel.on('rowdblclick',function(grid,index,e){
var record = gridPanel.store.getAt(index);//取出点击的那条记录
var content = record.get('mailContent');//假设邮件内容在record的mailContent属性中
panel.getEl.update(content);
});