• Publicidad (ayudanos a mantener el Foro haciendo un click sobre la misma)
  • Cuixer, una forma de administrar páginas web que nunca viste!

 Tema solucionado wind grid panel

Foros generales de ayuda Ext 3.0.

Ext.foro.Nuevo
Mensajes: 11
Registrado: 09 Jun 2011, 06:17
NotaPublicado: 16 Ene 2012, 09:26
Hola,
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.
Adjuntos
como veis en el mapa estan representados cada uno de los datos del grid, al seleccionar una row del grid se selecciona un icono del mapa eso es lo que hace el new GeoExt.FeatureSelectionModel() y a mayores de eso quiero mostrar una ventana con los datos de la row puestos de un modo mas "bonito" por asi decirlo. Si defino el RowSelectionModel no aparecen los iconos en el mapa y lo cierto es que tampoco me muestra la ventana con la info de las rows.
Para no ver esta publicidad, debes ser usuario del Foro.
Publicidad (ayudanos a mantener el Foro haciendo un click sobre la misma)


Cuixer, una forma de administrar páginas web que nunca viste!


Ext.foro.Nuevo
Mensajes: 11
Registrado: 09 Jun 2011, 06:17
NotaPublicado: 17 Ene 2012, 08:20
Solucionado!!!
Código: Seleccionar todo
sm: new GeoExt.grid.FeatureSelectionModel({
                                 singleSelect:true,
                                 stripeRows: true,
                                 listeners:{
                                    rowselect: function(sm, row, rec){
                                       ventana.show();
                                       Ext.getCmp("eaea").getForm().loadRecord(rec);
                                    }
                                 }
      })

Volver a Ext 3.0: Ayuda





  • Publicidad (ayudanos a mantener el Foro haciendo un click sobre la misma)
  • Cuixer, una forma de administrar páginas web que nunca viste!