konto usunięte

Temat: Menu contextowe

Cześć,
mam taki kod (exct 2.3):

var adminStore = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url: './kategorieAjax.php',
method: 'POST'
}),
baseParams: {
task: "getList",
start: 0,
limit: 20
},
reader: new Ext.data.JsonReader({
root: 'results',
totalPorperty: 'total'
}, [{
name: 'id',
mapping: 'id'
}, {
name: 'kategoria',
mapping: 'kategoria'
}]),
sortInfo: {
field: 'id',
direction: "ASC"
}
});
adminStore.load();

var xg = Ext.grid;
var sm2 = new xg.CheckboxSelectionModel();
admin_grid = new xg.EditorGridPanel({
store: adminStore,
cm: new xg.ColumnModel([sm2, {
header: 'Nazwa kategorii',
dataIndex: 'kategoria',
allowBlank: false,
width: 100,
editor: new Ext.form.TextField({
name: 'kategoria',
allowBlank: false,
maxLength: 25,
minLength: 1,
listeners: {
'change': {
fn: updateDataAdmin,
delay: 100
}
}
})
}, {
header: 'id',
dataIndex: 'id',
hidden: true
}]),
sm: sm2,
viewConfig: {
forceFit: true
},
buttons: [{
text: 'Zamknij okno',
handler: function(){
winKategory.destroy();
}
}],
buttonAlign: 'center',
tbar: ['Wyszukaj frazy: ', new Ext.app.SearchField({
store: adminStore,
params: {
start: 0,
limit: 20
}
}), '-', {
text: 'Nowa kategoria',
tooltip: 'Dodaje nową kategorię',
iconCls: 'add',
handler: addOneKategory
}, '-', {
text: 'Usuń kategorię',
tooltip: 'Usuwa wybraną kategorię',
iconCls: 'remove',
handler: function(){
var selections = sm2.getSelections();
if (selections.length > 0) {
Ext.Msg.show({
title: 'Uwaga',
msg: 'Czy napewno usunąć ?',
buttons: Ext.Msg.YESNO,
fn: function(btn){
if (btn == 'yes') {
var idStr = "(";
for (var i = 0; i < selections.length; i++) {
idStr += selections[i].data.id + ',';
}
idStr += "0)";
Ext.Ajax.request({
waitMsg: 'zapisywanie danych...',
url: 'kategorieAjax.php',
params: {
task: "delete",
keys: idStr
},
failure: function(response, options){ Ext.MessageBox.alert('Uwaga', 'Bład usuwania danych');
},
success: function(response, options){
adminStore.load();
}
});
}
}
});
}
}
}],
bbar: new Ext.PagingToolbar({
pageSize: 20,
store: adminStore,
displayInfo: true
}),
frame: true,
iconCls: 'icon-grid'
});


chciałbym do tego dodać:
1; menu kontekstowe (po kliknięciu prawym przyciskiem myszki na tą tabelkę)
2. jeśli kliknę w np. "pokaż szczegóły" z tego menu, to pokaże się nowe okienko z wyświetlonym plikiem plik.php...

dla menu głównego mam taką funkcję:

function windowListgalerry(){
var windowNavia22 = Ext.WindowMgr.get('windowNavigall');
if (!windowNavia22) {
var simple = new Ext.Panel({
frame: true,
width: 740,
height: 530,
html: '<iframe style="width:100%; height:100%; border:0; margin:0px; padding:0px;" src="file.php"></iframe>'
});
windowNavia22 = new Ext.Window({
id: 'windowNavigall',
layout: 'fit',
title: 'Podgląd galerii',
closable: true,
width: 740,
height: 530,
resizable: true,
items: simple
});
windowNavia22.show();

}
windowNavia22.toFront();
}


chciałbym to zintegrować z tym kontekstowym... wie ktoś może jak to zrobić?


Łukasz
Grzegorz K.

Grzegorz K. Angular, JavaScript,
Frontend, UI

Paweł Kozicki

Paweł Kozicki Główny programista

Temat: Menu contextowe

dobra, pisze teraz z pamięci i nie wiem czy dokładnie o to Ci chodzi...

dopisz do grida:


listeners: {
cellcontextmenu: function(grid, rowIndex, cellIndex, e){
var gridMenu = new Ext.menu.Menu({
items: [{
text: 'fn',
scope: this,
handler: function(){
admin_grid.handler();
//lub windowListgalerry();
}
}],
})
e.stopEvent(); // wylaczy Ci menu z przegarki czy windowsa a zostawi z extjs.
gridMenu.showAt(e.getXY());
}
}


jak cos jest nie tak to pisz

tylko ja się rozpędziłem i dałem Ci menu dla cell, czyli dla komórki jak w excelu dla wiersza bedzie:


rowcontextmenu : ( Grid this, Number rowIndex, Ext.EventObject e )
Fires when a row is right clicked
Fires when a row is right clicked
Listeners will be called with the following arguments:

* this : Grid
* rowIndex : Number
* e :


czyli zmień na coś takiego, jak nie będziesz chciał na cell


rowcontextmenu : function(grid, rowIndex, e){
Paweł Kozicki edytował(a) ten post dnia 23.01.10 o godzinie 20:22



Wyślij zaproszenie do