Bonjour,
Je rencontre quelques problèmes concernant l'ouverture d'une PopUp.
En fait je charge une grid à l'ouverture d'une page et j'ai déjà une erreur même si d'apparence ma page récupère bien les données dans ma grille :
comp is undefined
[Break on this error] }else if(!comp.events){
Je vois pas d'ou vient cette erreur.
Voici le code de ma page ou je charge une grille :
Je n'ai mis que la partie intéressante...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 var grid = new Ext.grid.GridPanel({ store: gridStore, colModel: new Ext.grid.ColumnModel({ defaults: { sortable: true, editable: false }, columns: conf.segmentListColumnModel}), // viewConfig: { forceFit: false }, bbar: bbarPager, sm: new Ext.grid.RowSelectionModel({ singleSelect: true }), width: 900, height: conf.pgSizeToHeight( PAGE_SIZE ), tbar: [{ text: 'New', handler : function(){ // access the Record constructor through the grid's store conf.segmentId = -1; conf.segmentName = 'Nouveau segment'; conf.segmentDetails = 'Details segment'; var segmentCreate = ControlPanelSegmentsCommands ( conf ); segmentCreate.show(); Ext.MessageBox.alert( 'Segment créé' ); } }] }); function _loadSegmentCard ( grid, cpConf, atRowindex ) { var record = grid.getStore().getAt( atRowindex ); var segId = record.data[ 'id' ]; var segCard = Ext.getCmp( cpConf.segWindowId ); var segForm = Ext.getCmp( cpConf.segFormId ); cpConf.pSegmentId = segId; segForm.getForm().load({ waitMsg: 'Loading segment...', url: cpConf.loadSegmentResource, params: {segmentId: segId}, success: function ( form, action ) {/*action.result.data*/}, failure: function( form, action ) { Ext.MessageBox.alert ( "Load failed", action.result.errorMessage || action.result.errorMsg ); } }); } grid.on( 'rowdblclick', function ( grid, rowindex, event ) { var record2 = grid.getStore().getAt( rowindex ); var segId2 = record2.data[ 'id' ]; var segName2 = record2.data[ 'name' ]; conf.pSegmentId = segId2; conf.pSegmentName = segName2; var segmentCard = ControlPanelSegmentCard( conf ); segmentCard.show(); (function(){ _loadSegmentCard( grid, conf, rowindex ); }).defer(1); } ); return grid; }
Donc j'ai bien ma grille, et j'ai créé un bouton "New" qui doit ouvrir une PopUp avec un formulaire pour enregistrer une nouvelle ligne :
Seulement, ma PopUp ne s'affiche pas et j'ai une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 var grid = new Ext.grid.GridPanel({ store: gridStore, colModel: new Ext.grid.ColumnModel({ defaults: { sortable: true, editable: false }, columns: conf.segmentListColumnModel}), // viewConfig: { forceFit: false }, bbar: bbarPager, sm: new Ext.grid.RowSelectionModel({ singleSelect: true }), width: 900, height: conf.pgSizeToHeight( PAGE_SIZE ), tbar: [{ text: 'New', handler : function(){ // access the Record constructor through the grid's store conf.segmentId = -1; conf.segmentName = 'Nouveau segment'; conf.segmentDetails = 'Details segment'; var segmentCreate = ControlPanelSegmentsCommands ( conf ); segmentCreate.show(); Ext.MessageBox.alert( 'Segment créé' ); } }] }); function _loadSegmentCard ( grid, cpConf, atRowindex ) { var record = grid.getStore().getAt( atRowindex ); var segId = record.data[ 'id' ]; var segCard = Ext.getCmp( cpConf.segWindowId ); var segForm = Ext.getCmp( cpConf.segFormId ); cpConf.pSegmentId = segId; segForm.getForm().load({ waitMsg: 'Loading segment...', url: cpConf.loadSegmentResource, params: {segmentId: segId}, success: function ( form, action ) {/*action.result.data*/}, failure: function( form, action ) { Ext.MessageBox.alert ( "Load failed", action.result.errorMessage || action.result.errorMsg ); } }); } grid.on( 'rowdblclick', function ( grid, rowindex, event ) { var record2 = grid.getStore().getAt( rowindex ); var segId2 = record2.data[ 'id' ]; var segName2 = record2.data[ 'name' ]; conf.pSegmentId = segId2; conf.pSegmentName = segName2; var segmentCard = ControlPanelSegmentCard( conf ); segmentCard.show(); (function(){ _loadSegmentCard( grid, conf, rowindex ); }).defer(1); } ); return grid; }
segmentCreate is undefined
[Break on this error] segmentCreate.show();
Pourtant ma fonction est bien définie :
Une idée ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 var segmentCreate = ControlPanelSegmentsCommands ( conf ); segmentCreate.show(); Ext.MessageBox.alert( 'Segment créé' );
Cela fait un petit moment que je bloque, si vous avez une idée...
Merci !
Partager