Mostrar una vista como cuadrícula
Objetivo
Poner una lista de registros en su portal sin dibujar la lista: la propia cuadrícula de la plataforma, con las columnas que decide una vista.
Antes de empezar
- Una vista de la tabla, con las columnas que quiere que vean los visitantes. De ahí salen los encabezados, los anchos y el orden.
- Una API personalizada que enumere la tabla, marcada en Qué puede leer del portal. Consulte Publicar una aplicación como portal para saber cómo funciona esa lista.
Pasos
- En el diseñador de aplicaciones, suelte Componentes → Vista de tabla o formulario donde deba ir la lista.
- En la pestaña Pantalla, elija la Tabla. Deje Vista en El predeterminado de la tabla, o elija una de las vistas de la tabla.
- Elija la API personalizada (portal) por la que llegan las filas, por ejemplo Notices
(
api:par_list_notices@1). Solo se ofrecen contratos que responden a unGET, porque una cuadrícula solo lee. - Publique y abra el portal.
Eso es todo en la parte del dibujo. Aquí no elige columnas: ya lo hizo la vista.
Una cuadrícula plantea dos preguntas, y cada uno de los dos cuadros responde a una. La tabla y la vista deciden qué mostrar (los encabezados, los anchos, el orden), y la plataforma lo resuelve antes de servir la página, así que nada sobre la forma de su tabla llega a un navegador público. La API personalizada decide qué filas, porque en un portal cada lectura pasa por un contrato que escribió usted. En la lista de aplicaciones, el cuadro de la API se ignora y la tabla aporta ambas cosas.
Qué tiene que hacer la API
Paginar, e indicar cuántos hay. La cuadrícula pide una página cada vez y lee total para saber si
hay una siguiente:
var page = runQuery({
entity: 'par_notice',
select: ['par_name', 'par_category', 'par_published_on'],
order: [{ field: 'par_published_on', descending: true }],
top: num(getInput('top')),
skip: num(getInput('skip'))
});
setOutput('rows', page);
setOutput('total', page.length());
Sin total, el paginador no puede distinguir una última página de una página completa, y ofrecerá
un botón Siguiente que no lleva a ninguna parte.
Una columna que la vista tiene y la API no devuelve
Muestra un guion en cada fila. La vista decide los encabezados; la API decide qué hay en cada
fila, y un campo que su select deja fuera no está en la fila. Así que añadir una columna son dos
cambios: la columna en la vista y el campo en el select de la API.
Es intencionado, no un descuido. La vista se comparte con la aplicación dentro de la plataforma, y añadir allí una columna para su propia gente no debería publicar ese campo a desconocidos. Lo que sale de la plataforma es lo que la API selecciona.
Una cuadrícula sin API no aparece en absoluto
Deje API personalizada (portal) vacío, o nombre una que no se haya concedido al portal, y la cuadrícula no se sirve: no obtiene ninguna cuadrícula, en lugar de unos encabezados sobre un cuerpo vacío.
Es a propósito, y es la misma regla que cumple el resto del portal: una cuadrícula vacía se lee como no hay registros, que es una afirmación distinta de a este portal nunca se le permitió mostrarlos. Recurrir a leer la tabla directamente sería aún peor: es exactamente la puerta que cierra el §6.11.3, llegando por otro camino.
De dónde salen las columnas, y cuándo
De la vista, cuando se sirve el portal. Edite la vista, vuelva a cargar el portal y las columnas cambian: no hay nada que volver a publicar. Por eso también una página del portal nunca pregunta a la plataforma qué contiene una vista: la respuesta llega con la página.
Si nombra una vista y después la elimina, la cuadrícula indica que no está disponible en lugar de recurrir discretamente a la predeterminada. Usted eligió esas columnas, y que aparezca otro conjunto sin aviso en una página pública es peor que una cuadrícula que reconoce que está rota.
Qué puede y qué no puede hacer un visitante con ella
Puede leerla y pasar páginas. No puede seleccionar filas, entrar en un registro ni usar una barra de comandos: aquí no existe nada de eso. Cada una de esas cosas es una acción sobre un registro, y lo que un desconocido puede hacer con un registro lo decide su API personalizada, no una cuadrícula.
Si quiere que un visitante haga algo, dibuje un botón y dele su propia fila en la lista de permitidos.
No disponible en un portal
- Un formulario rápido (superficies
Create/Edit). Un formulario necesita las reglas de campos obligatorios de la tabla, sus opciones y sus pasos de complemento, y nada de eso tiene cabida en un sitio público. Dibuje los campos en su lugar y escriba la API personalizada que hay detrás de su botón Guardar; consulte Permitir que los visitantes guarden cambios. - Una lista de tareas. Un visitante del portal no es un usuario de la plataforma y no tiene bandeja de entrada.
Las dos cosas lo indican en la página en lugar de fallar en silencio.
Comprobar que ha funcionado
Abra el portal como lo haría un desconocido. La cuadrícula muestra las columnas de su vista, con sus encabezados, y pasa páginas por los registros que devuelve la API. Después edite uno de los encabezados de columna de la vista y vuelva a cargar: el portal lo sigue.