• Martes 20 de Abril de 2021, 06:12

Autor Tema:  jqgrid y ventanas emergentes  (Leído 4469 veces)

pelirr

  • Nuevo Miembro
  • *
  • Mensajes: 11
  • Nacionalidad: es
    • Ver Perfil
jqgrid y ventanas emergentes
« en: Viernes 13 de Mayo de 2011, 10:18 »
0
Hola, estoy utilizando jqgrid para mostrar una tabla con datos, en la parte inferior tiene una barra de navegación con los botones editar,..., en los que al pinchar se abre una ventana emergente con los campos de un formulario, que son los campos de la tabla. Estoy siguiendo la demo de jqgrid pero no consigo que al abrirse la ventana emergente se muestren los campos, salen sólo los botones submit y cancel, pero ningún campo. Mi código javascript es el siguiente:

      
      <link href="../../web/css/ui-lightness/jquery-ui-1.8.12.custom.css" rel="stylesheet" type="text/css" />
      <link href="../../web/css/ui-lightness/ui.jqgrid.css" rel="stylesheet" type="text/css" />
      <link href="../../web/css/ui-lightness/ui.multiselect.css" rel="stylesheet" type="text/css" />
      <script type="text/javascript" src="<s:url value="/js/jquery-1.4.2.min.js"/>"></script>
      <script type="text/javascript" src="<s:url value="/js/jquery-ui-1.8.12.custom.min.js"/>"></script>
      <script type="text/javascript" src="<s:url value="/js/jquery.layout.js"/>" ></script>
      <script type="text/javascript" src="<s:url value="/js/grid.locale-en.js"/>" ></script>
      
      <script type="text/javascript" src="<s:url value="/js/ui.multiselect.js"/>"></script>
      <script type="text/javascript" src="<s:url value="/js/jquery.jqGrid.min.js"/>"></script>
      <script type="text/javascript" src="<s:url value="/js/jquery.tablednd.min.js"/>"></script>
      <script type="text/javascript" src="<s:url value="/js/jqModal.js"/>"></script>
      <script type="text/javascript" src="<s:url value="/js/jqDnR.js"/>"></script>
      <script type="text/javascript" src="<s:url value="/js/jquery.contextmenu.js"/>"></script>
                  
      <script type="text/javascript">
         $(document).ready(function()
         {   
            listarPuertas();
         });
         
         
         var numItemsPerPage = '<s:property value="%{numItemsPerPage}"/>';
         var paginaSeleccionada = '<s:property value="%{selectedPage}"/>';
         
         function listarPuertas()
         {
            jQuery("#listadoGrid").jqGrid({
                  url:'/AODB2/maintenance/gate/NewGate.action?accion=listar&numItemsPerPage='+numItemsPerPage+'&selectedPage='+paginaSeleccionada,
               datatype: "json",
                  colNames:['Codigo','Nombre', 'Descripcion', 'TipoPuerta','Zona','Stand'],
                  colModel:[
                     {name:'Codigo',index:'Codigo', width:110, align:'center'},
                     {name:'Nombre',index:'Nombre', width:160, align:'center'},
                     {name:'Descripcion',index:'Descripcion', width:200, align:'center'},
                     {name:'TipoPuerta',index:'TipoPuerta', width:120, align:'center'},               
                  {name:'Zona',index:'Zona',width:110,align:'center'},
                  {name:'Stand',index:'Stand', width:120, align:'center'}      
                  ],
                  rowNum:2,
                  rowList:[2,4,8],
                  pager: '#pageGrid',
                  sortname: 'Codigo',
                viewrecords: true,
                sortorder: "desc",                   
                jsonReader: {
                   root: "rows",
                  repeatitems : false,
                  id: "Codigo"                           
               },
               //editurl: '/AODB2/maintenance/gate/EditDialogGate.action?codigoGate=79',
                caption: "Puertas",                   
                height: '100%'
                                   
            });

            jQuery("#listadoGrid").jqGrid('navGrid','#pageGrid',
               {}, //options
               {height:280,reloadAfterSubmit:false}, // edit options
               {height:280,reloadAfterSubmit:false}, // add options
               {reloadAfterSubmit:false}, // del options
               {} // search options
               );            
      
         }

      </script>
   </head>
   <body>
      <!--<h2><s:text name="titleGate"/></h2>-->

      <div id="contenedor">
         <div id="cabecera">
               <!--<div id="logo"><h2>AODB</h2></div>-->
            <s:include value ="../../../application/menu.jsp"/>
           </div>      
            <div id="info"></div>
            <div id="banner"></div>      
            <table id="listadoGrid"></table>
            <div id="pageGrid"></div>
         <div id="pie" align="center"><s:actionerror /><s:fielderror /></div>   
      </div>      
   </body>   
</html>

Si alguien puede decirme qué me falta, se lo agradecería mucho, porque estoy muy perdida. Muchas gracias, un saludo

fonsi3

  • Miembro activo
  • **
  • Mensajes: 95
    • Ver Perfil
Re: jqgrid y ventanas emergentes
« Respuesta #1 en: Lunes 16 de Mayo de 2011, 19:23 »
0
Mi recomendacion es dediques un buen tiempo para enteder los "internals" de jqgrid, osea comprendiendo el codigo que conforman al plugin, y asi cuando veas que algo no funciona como ya te conoces el codigo fuente de jqgrid de pies a cabeza, ya sabras donde esta el problema.

Lo otro que puede decirte es que implementes esa funcionalidad tu mismo, dejando de lado que jqgrid venga con la funcionalidad de editar campos por defecto. Supongo que tendras algo como jqgrid.onclick donde especificas una funcion que se disparara cuando se haga click en la tabla, y ahi es donde tu podrias arrancar la edicion, haciendo aparecer una ventana con los campos a editar y bla bla..., claro que todo esto lo haces con tu propio codigo.
Cha che chi cho chu buenichimo!
http://mensoscripts.com

Links de interes: HTML | CCS2~CSS* | PHP
Indispensables tools]Firebug[/url] | Web Developer | FireFTP | Live Headers

pelirr

  • Nuevo Miembro
  • *
  • Mensajes: 11
  • Nacionalidad: es
    • Ver Perfil
Re: jqgrid y ventanas emergentes
« Respuesta #2 en: Martes 17 de Mayo de 2011, 10:18 »
0
Hola, muchas gracias por tu respuesta, pero la gracia está en intentar utilizar jgrid todo lo posible, todas sus funciones, en lugar de tener que implementar lo que quiero a mano. De todos modos,al final he visto el error. El problema es que dónde se definen las columnas,

{name:'Codigo',index:'Codigo', width:110, align:'center'},

hay que añadir "editable:true", cosa que ya había probado pero teniendo algo más mal, y claro, no me iba. Al final he conseguido que funcionara y después he visto que me faltaba esa instrucción. Quedaría:

{name:'Codigo',index:'Codigo', width:110, align:'center', editable:true},

 Espero que a alguien le sirva mi error. Muchas gracias de todos modos por responderme,

Un saludo