Esta web utiliza cookies propias y de terceros para su funcionamiento. ¿Aceptas? Leer más
Widget

Widget Select

El widget select, o WidgetSelect, permite mostrar o editar valores que están relacionados con otras tablas (o con la misma). Un ejemplo muy sencillo es un selector de país.

<column name='country' numcolumns='2' order='150'>
    <widget type='select' fieldname='codpais' required='true'>
        <values source='paises' fieldcode='codpais' fieldtitle='nombre'></values>
    </widget>
</column>

Propiedades

  • fieldname: nombre del campo que contiene la información. Obligatorio.
  • required: impide guardar los datos del formulario si el usuario no ha escrito nada en el campo.
  • readonly: impide modificar el valor.
  • onclick: URL o controlador al que será redirigido el usuario al hacer clic. A esta URL se le añade ?code= y el valor del campo.
  • icon: icono a mostrar en el campo de edición.
  • translate: true para indicar que se traduzcan automáticamentelos títulos de los valores a mostrar al usuario.

Opciones de coloreado

Recuerda que todos los widgets tienen una serie de propiedades y opciones comunes.

Valores a mostrar

Podemos mostrar los valores de una tabla concreta, valores fijos o incluso podemos añadir valores manualmente desde el controlador.

Valores de una tabla

<widget type='select' fieldname='codpais' required='true'>
    <values source='paises' fieldcode='codpais' fieldtitle='nombre'></values>
</widget>
  • source: nombre de la tabla a consultar.
  • fieldcode: columna de la tabla para el valor seleccionado.
  • fieldtitle: columna de la tabla para el texto a mostrar al usuario. Si no se indica es el mismo que fieldcode. Si se ha indicado translate en el widget, este texto se traducirá.

Valores fijos

<widget type='select' fieldname='actualizastock' translate='true' required='true'>
    <values title='book'>-2</values>
    <values title='subtract'>-1</values>
    <values title='do-nothing'>0</values>
    <values title='add'>1</values>
    <values title='foresee'>2</values>
</widget>

Añadir valores desde el controlador

Si necesitamos cargar una lista muy concreta de valores en un widget select, podemos hacerlo de la siguiente manera:

$customValues = [
    ['value' => '1', 'title' => 'UNO'],
    ['value' => '2', 'title' => 'DOS'],
    ['value' => '3', 'title' => 'TRES'],
    ['value' => '14', 'title' => 'CATORCE'],
];

$columnToModify = $this->views[VIEW_NAME]->columnForName(COLUMN_NAME_IN_XMLVIEW);
$columnToModify->widget->setValuesFromArray($customValues);

Sustituir VIEW_NAME por el nombre de la vista/pestaña que sea, y COLUMN_NAME_IN_XMLVIEW con el name de la columna que contiene el widget en el archivo xmlview.