el caso es que estoy metido en darle funcionalidades a un grid y en este momento estoy probando en sacar un ventana para visualizar los datos por fila de un modo mas "atractivo", hay un ejemplo pero el caso es que no consigo que funcione con el tipo de grid que hago. Mi grid interactua con unos datos de un fichero JSON en un mapa para ello uso se usa una funcion para seleccionar las features en una fila e interactue con el mapa FeatureSelectionModel(). En el ejemplo para crear la ventana el objeto sm usa la funcion RowSelectionModel(), intento definir lo mismo para las Features pero me dice que la funcion FeatureSelectionModel() no es un constructor. Pongo el codigo (espero que no muy liado) en el que se puede ver lo que pretendo hacer, que no me responde al evento de seleccionar fila y sacar la ventana con los datos.
- Código: Seleccionar todo
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side';
var bd = Ext.getBody();
store = new GeoExt.data.FeatureStore({
layer: vecLayer,
fields: [
{name: 'a_code', type:'string'},
{name: 'shooting_time', type: 'string'},
{name: 'total_discarded_weight', type: 'double'},
{name: 'weight_caught', type: 'double'}
],
proxy: new GeoExt.data.ProtocolProxy({
protocol: new OpenLayers.Protocol.HTTP({
url: "data/especie.json",
format: new OpenLayers.Format.GeoJSON()
})
})
});
var formulario = new Ext.form.FieldSet({
id: 'formulario',
columnWidth: 0.4,
labelWidth: 90,
title:'Detalles',
defaults: {width: 140},
defaultType: 'textfield',
autoHeight: true,
bodyStyle: Ext.isIE ? 'padding:0 0 5px 15px;' : 'padding:10px 15px;',
border: false,
style: {
"margin-left": "10px",
"margin-right": Ext.isIE6 ? (Ext.isStrict ? "-10px" : "-13px") : "0"
},
items: [{
fieldLabel: 'COD',
name: 'a_code'
},{
fieldLabel: 'Uno',
name: 'weight_caught'
},{
fieldLabel: 'Dos',
name: 'total_discarded_weight'
},{
fieldLabel: 'Tres',
name: 'shooting_time'
}]
});
var eaea = new Ext.FormPanel({
id:'eaea',
frame:true,
labelAlign:'left',
items:[formulario]
});
var colModel = new Ext.grid.ColumnModel([
{
header: "COD",
width: 35,
sortable: true,
dataIndex: "a_code"
},{
header: "Peso Capturado",
width: 90,
sortable: true,
dataIndex: "weight_caught"
},{
header: "Total Descartes",
width: 90,
sortable: true,
dataIndex: "total_discarded_weight"
},{
header: "Fecha Lance",
width: 160,
sortable: true,
dataIndex: "shooting_time"
}]);
gridPanel = new Ext.grid.GridPanel({
title: "Información de Capturas",
region: "south",
border: true,
collapsible: true,
collapsed:true,
collapseMode: "mini",
store: store,
cm: colModel,
sm: new Ext.grid.RowSelectionModel({
singleSelect:true,
listeners:{
rowselect: function(sm, row, rec){
ventana.show();
Ext.getCmp("eaea").getForm().loadRecord(rec);
}
}
}),
stateful: true,
width:320,
height:400,
boxMinHeight: 450,
autoScroll: true,
split:true,
renderTo: bd,
stripeRows: true,
sm: new GeoExt.grid.FeatureSelectionModel()
});
como podeis ver cuando defino sm por un lado tengo la RowSelectionModel que no funciona y si intento hacer
- Código: Seleccionar todo
new GeoExt.grid.FeatureSelectionModel().rowselect:function(sm,row,rec){
ventana.show();
Ext.getCmp("eaea").getForm().loadRecord(rec);
}
el error que da es que no me muestra en el mapa los datos.

