Is this the way it has always been?
Monday, September 20th, 2004He creado otro interesante Widget
.
Al widget lo he bautizado como DataGrid ([friend]ion[/friend], si se te ocurre otro nombre.. dilo
). ¿Qu?ace?…. pues como todo lo que yo hago: magia.
Para los que han usado Jaws posiblemente me entiendan. Han visto que en la administraci?e Jaws manejamos tablas para desplegar informaci?que tienen accciones (editar, borrar, etc) y cada fila tiene un color diferente.. bien pues eso es un JawsDataGrid.
¿Pero entonces qu?ace el mentado Widget?.. pues de nuevo: Magia. Pueden crear la lista con un objeto, agregarle encabezados, propiedad de hidden a las columnas, sort a cualquier columna y claro todo el trique de dise?ara una tabla.
Veamos…
$model = new BlogModel (); $datagrid = new JWDataGrid ("50%", $_REQUEST["orderby"], $_REQUEST["ordertype"]);
Lo que hacemos es crear el modelo (en jaws-mvc van a entender…
) y creamos un DataGrid que va a tener un tama?e 50%, va a recibir el argumento de orderby (para ver si se tiene que ordenar con respecto a una columna) y que tipo de ordenaci?ASC, DESC).
Bien… ahora veamos:
$datagrid->AddColumn ("Username", "username", true, false, "", "?unacosa={username}"); $datagrid->AddColumn ("Category", "category", true, false, "", "?otracosa={id}"); $datagrid->AddColumn ("ID", "id", true, true);
Lo que hacemos es agregar tres columnas, los argumentos son como siguen: Nombre de la columna (va a aparecer a la hora de renderear el html, el campo que corresponde a un arreglo -indexeado-, se le indica si puede ser ‘ordenable’ (osea.. ASC, DESC), se le indica si es hidden (osea.. que nadie lo vea
), se le agrega el estilo a la columna (me di cuenta que en Jaws tenemos estilos para cada tipo de columna.. asi que se me hizo buena idea) y el otro argumento es la url.. como ven la url tiene un formato chistoso: {id}, ¿qu?on esas etiquetas?.. ah pues le indicamos que esa va a ser la url, pero el valor de ‘otracosa’ va a ser el ‘id’. De esta manera la url se va generando autom?camente.
Las urls, no son las acciones propiamente.. sino ‘propiedades’ en forma de link para cada campo.
Los ?os campos requeridos son: el t?lo de la columna y el dato que va a cargar, los dem?son valores que se pueden tomar por default.
Bien.. ahora vienen las acciones:
$datagrid->AddAction ("Delete", "http://www.google.com.mx"); $datagrid->AddAction ("Edit", "index.php?variable={username}&variable2={category}&id={id}");
Y as?e manejan, van a ir en una columna especial llamada: Actions, que b?camente es el Nombre de la acci?su url y su imagen (opcional, pero si se agrega se usa la imagen y no el nombre).
Y finalmente.. los datos!
$datagrid->AddData ($model->GetEntries());
Que no es mas que un array indexeado
Y listo, para mostrarlo pues
echo $datagrid->Get ();
Ahora podemos hacer listas en un dos-por-tres. ¿Qu?e traj?todo esto?.. pues me estaba aburriendo de hacer listitas para una aplicaci?el Tec
.
A New Machine - Pink Floyd