Tabelle Annidate: Laterali Sinistra e Destra
position('left') e position('right') fanno funzionare una tabella annidata come una colonna laterale ancorata e a larghezza fissa, accanto ai campi propri del modulo genitore.
position('left') / position('right')
Entrambi i valori fanno funzionare la tabella annidata come una colonna a larghezza fissa (predefinita 300px, min-width: 160px, max-width: 60vw) ancorata alla parte superiore del pannello, accanto ai campi propri del modulo genitore (i suoi campi semplici, la barra delle schede ed eventuali sezioni bottom/bottom-fixed) invece che sopra o sotto di essi. Entrambe ottengono un bordo trascinabile per ridimensionare la larghezza della colonna e un proprio scroll interno per le righe figlie - lo stesso trattamento ancorato + maniglia trascinabile + scroll interno usato da bottom-fixed, semplicemente ruotato di lato.
left posiziona la colonna annidata a sinistra con i campi propri del genitore che scorrono a destra; right è l'esatto opposto. In entrambi i casi, la maniglia trascinabile si trova sul bordo che confina con la colonna principale del modulo.
Esempio: left
Corrispondente a pages/nested-table-left.php:
$xcrud = Xcrud::get_instance();
$xcrud->table('orders');
$xcrud->route('nested-table-left');
$xcrud->columns('orderNumber,orderDate,status,customerNumber');
$orderdetails = $xcrud->nested_table('Order details', 'orderNumber', 'orderdetails', 'orderNumber');
$orderdetails->columns('productCode,quantityOrdered,priceEach');
$orderdetails->fields('productCode,quantityOrdered,priceEach');
$orderdetails->order_by('productCode', 'asc');
$orderdetails->change_type('priceEach', 'price', '2', ['prefix' => '$']);
$orderdetails->relation('productCode', 'products', 'productCode', 'productName', null, null, false, ' ', true);
$orderdetails->position('left');
echo $xcrud->render();
Aprendo qui il modulo di modifica di un ordine compare "Order details" come colonna fissa che scende lungo il lato sinistro, ancorata alla parte superiore del pannello mentre i campi propri dell'ordine scorrono a destra. Trascina il suo bordo destro per allargarla o restringerla.
Esempio: right
La differenza di una sola riga:
$orderdetails->position('right');
Stesso layout, speculare - la colonna annidata ora scende lungo il lato destro, con la maniglia trascinabile sul suo bordo sinistro (quello che confina con i campi propri del genitore), e i campi del genitore scorrono invece a sinistra.
Riferimento di position()
| Valore | Descrizione |
|---|---|
left | Colonna ancorata a larghezza fissa sulla sinistra; i campi propri del genitore scorrono a destra; maniglia trascinabile sul bordo destro della colonna |
right | Colonna ancorata a larghezza fissa sulla destra; i campi propri del genitore scorrono a sinistra; maniglia trascinabile sul bordo sinistro della colonna |