① 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);
});