jQuery Grid Plugin – JSP

Estoy de regreso…

En los últimos 3 meses estuve trabajando en un proyecto, una aplicación web. Uno de los puntos fue la elección del Grid a utilizar para la visualización de datos.

Decidí utilizar jqGrid un plugin mas JQuery, en realidad es muy funcional y practico en cuanto a código se refiere .

Hoy traigo una simple manera de implementar este Grid con JSP y JSON:

Ya que se ha descargado el plugin de la pagina de descargas iniciamos con la implementación.

Se intenta que logres algo parecido a este ejemplo:

De dahico

La declaración del Grid entre las etiquetas HEAD.

<script type=”text/javascript”>
$().ready(function() {
var windowWidth = (document.documentElement.clientWidth – 100) /1.2;

jQuery(“#gridUsuarios”).jqGrid({
url:’getGriddahico.jsp’,
datatype: “json”,
colNames:['id_Usuario','Usuario','Email','Fecha/Hora'],
colModel:[
{name:'id',index:'id_Usuario', width:10, hidden:true},
{name:'Usuario',index:'usuario_Usuarios', width:150},
{name:'Email',index:'email_Usuarios', width:350},
{name:'Fecha/Hora',index:'timestamp_Usuairo', width:150},
],
rowNum:10,
rowList:[10,20,30],
multiselect: true,
pager: ‘#pagGrid’,
sortname: ‘id_Usuario’,
viewrecords: true,
sortorder: “desc”,
width: windowWidth,
height: “100%”,</code>
// nSelectRow: Evento,
caption:”dahicotux.wordpress.com”
});

jQuery(“#gridUsuarios”).jqGrid(‘navGrid’,'#pagGrid’,{edit:false,add:false,del:false});

});
</script>

Y entre las etiquetas BODY no es necesario nada mas que crear un tabla con ID con el que declaramos el Grid en este caso #gridUsuarios y un DIV  para el área de la paginación en este caso #pagGrid.

<div>
<table id=”gridUsuarios”></table>
<div id=”pagGrid”></div>
</div>

Ahora vamos a trabajar el codigo de lado del servidor en este caso sera una pagina JSP la cual ya esta declarada como parámetro url en el grid  url:’getGriddahico.jsp’.

<%–
Document   : getGriddahico
Created on : 4/02/2010, 11:00:58 PM
Author     : @dahico
–%>

<%@page import=”java.sql.*” %>
<%@page import=”app.classes.conexion” %>

<%
int start=0;
int total=0;
int total_pages =0;

int intpage = new Integer(request.getParameter(“page”));
int limit = new Integer(request.getParameter(“rows”));

String sidx = request.getParameter(“sidx”);
String sord = request.getParameter(“sord”);

String strQuery=”";
String json =”";

boolean rc;

ResultSet rs = null;

if(sidx ==”"){
sidx =”1″;
}

//Conexión a la base de datos
conexion  conexiondb = new conexion();
conexiondb.Conectar();

total = conexiondb.countRec(“id_Usuario”, “tbl_Usuario”);

if( total>0 ) {
double d = Math.ceil( (double)(total) / (double)(limit) );
total_pages = (int)(d);
} else {
total_pages = 0;
}

if (intpage > total_pages) {
intpage=total_pages;
}

start = limit * intpage – limit;

if(start < 0 ){
start = 0;
}

strQuery = “SELECT * FROM tbl_Usuario ORDER BY “+sidx + ” ” +sord +” LIMIT “+start+” , “+limit;

rs = conexiondb.Consulta(strQuery);

total = conexiondb.countRec(“id_Usuario”, “tbl_Usuario”);

response.setContentType(“text/x-json”);
response.setCharacterEncoding(“utf-8″);
response.setHeader(“Pragma”, “no-cache”);
response.setHeader(“Cache-Control”, “no-cache, must-revalidate”);
response.setHeader(“Pragma”, “no-cache”);

json =”";
json = json + “{\n”;
json = json + ” \”page\”:\”"+intpage+”\”,\n”;
json = json + “\”total\”:”+total_pages+”,\n”;
json = json + “\”records\”:”+total+”,\n”;
json = json + “\”rows\”: [";
rc =false;

while(rs.next()){

if(rc){
json = json + ",";
}
json = json + "\n{";
json = json + "\"id\":\""+rs.getInt("id_Usuario")+"\",";
json = json + "\"cell\":["+rs.getInt("id_Usuario")+"";
json = json + ",\""+rs.getString("nombre_Usuario")+"\"";
json = json + ",\""+rs.getString("email_Usuario")+"\"";
json = json + ",\""+rs.getString("timestamp_Usuario")+"\"]“;
json = json + “}”;

rc=true;
}
json = json +”]\n”;

json = json +”}”;

out.print(json);
out.close();

%>

Para este ejemplo utilice una tabla en Mysql con la siguiente estructura:

CREATE TABLE `dahicotux`.`tbl_Usuario` (
`id_Usuario` INT  NOT NULL,
`nombre_Usuario` VARCHAR(10)  NOT NULL,
`email_Usuario` VARCHAR(150)  NOT NULL,
`timestamp_Usuario` TIMESTAMP  NOT NULL,
PRIMARY KEY (`id_Usuario`)
)
ENGINE = MyISAM;

Esta es solo una manera de implementar el Grid, les recomiendo leer la documentación para aprovechar al máximo sus funcionalidades.

Por ahora esto es todo, en lo próximos días espero profundizar en el tema ya que no se sabe cuando necesitaras un grid.

Mysql GUI Tools en Ubuntu 9.04

El día de hoy me di la tarea de formatear mi laptop e instalar nuevamente Ubuntu 9.04. Después de haber almacenado toda mi información respaldada, me dispuse a instalar todas las aplicaciones que diariamente utilizó por mi trabajo.

Unas de ellas fueron las herramientas gráficas para manejar Mysql (MySQL GUI Tools), y pues de esto salio este post:

Vamos a el sitio de MySQL a descargar los archivos.

mysql-gui-tools-1

Una vez que se han descargado los archivos , se descomprimen.

Ya hecho esto, movemos la carpeta al directorio /opt , podemos hacerlo desde la terminal:
sudo mv mysql-gui-tools-5.0 /opt/

mysql-gui-tools-2

Nos movemos al directorio:
cd /opt/mysql-gui-tools-5.0

No aseguremos que se hayan transferido los archivos:
ls

Ya que esta todo confirmado y estamos dentro del directorio ejecutamos :
./mysql-query-browser
Para correr Mysql Query Browser

O bien, si la prisa es mucha y el tiempo es poco, como me paso a mí. Podemos ir al menú Sistema->Administración->Gestor de Paquetes Synaptic y buscamos
mysql-admin e instalamos .

mysql-gui-tools-3

Instalar Ubuntu 9.04

Para aquellos que han estado con la curiosidad de cambiarse o por lo menos probar alguna distribución de GNU/Linux y aun tienen ciertas dudas.

Navegando por la red me encontré con este vídeo en donde muestra de manera rápida el proceso de instalación de UBUNTU 9.04 una de las distribuciones mas populares de GNU/Linux , que por cierto yo utilizo en mi Laptop :P .

Aquí tienen el vídeo, vean lo fácil y rápido que es instalar UBUNTU. Vas a esperar mas tiempo para probarlo?

Llegó mi CD Ubuntu 9.04

La verdad, esta vez fue menos la espera, hoy llegó mi CD de Ubuntu 9.04.

CDUbuntu1 CDUbuntu2

Aunque en realidad no pude esperar a que me llagara para instalarlo en mi laptop de trabajo (ya saben, mi laptop es de UBUNTU y mi PC de escritorio es de DEBIAN). Actualice del Ubuntu 8.10 al 9.04 y en verdad me ha funcionado muy bien.

FLISOL 2009 | en Monterrey




El FLISOL (Festival Latinoamericano de Instalación de Software Libre) es el evento de difusión de Software Libre más grande en Latinoamérica. Se realiza desde el año 2005 y su principal objetivo es promover el uso del software libre, dando a conocer al público en general su filosofía, alcances, avances y desarrollo.

Para tal fin, las diversas comunidades locales de software libre (en cada país, en cada ciudad/localidad), organizan simultáneamente eventos en los que se instala de manera gratuita y totalmente legal, software libre en las computadoras que llevan los asistentes. Además, en forma paralela, se ofrecen charlas, ponencias y talleres, sobre temáticas locales, nacionales y latinoamericanas en torno al Software Libre, en toda su gama de expresiones: artística, académica, empresarial y social.

Este evento, está siendo organizado por miembros del Grupo de Usuarios de Linux (GULUR) y la Mesa Estudiantil de las Carreras de Tecnologías (iTur) de nuestra alma mater, la Universidad Regiomontana. Así mismo, se está contando con el indispensable apoyo de la Facultad de Ingeniería y Arquitectura (FACIYA ).

Te invito a visitar el sitio para ver el programa del día del evento, los Ponentes, y Patrocinadores del evento este próximo 25 de Abril.

Seguir

Get every new post delivered to your Inbox.