Beren.it

All that you can leave behind

Dynamic Data Entities - Customizzare le Foreign-Key

Personalizzare la visualizzazione delle Foreign Key nei Dynamic Data Entity

Oggi vediamo come customizzare il controllo delle Foreign-Key visualizzato per default nei Dynamic Data Entities. Questo controllo visualizza i dati di una tabella terza rispetto quella che si sta editando e che viene linkata tramite una chiave esterna (Foreign Key appunto). Dato che di default viene semplemente riempito con un field dell'entità scelto in base alla PK della stessa, non sempre può essere immediato da utilizzare. Quello che faremo è visualizzare un composizione di più campi invece che uno singolo ed ordinare gli elemento rispetto ad un field specifico.

1. Visualizzazione di un campo composto: la dropdown usata nel controllo della FK (Foreign Key) può essere customizzata sovrascrivendo la funzione ToString() con un metodo custom come ade esempio illustrato qui sotto:

[C#]

    [MetadataType(typeof(TB_SEASONMetadata))]
    public partial class TB_SEASON
    {         
         public override string ToString()
         {
             return NAME + DESCRIPTION;
         }
    }

 

2. Ordinare i valori nella DropDown: per ordinare rispetto ad un campo gli oggetti all'interno della dropdown di FK occorre usare il decoratore DisplayColumn specificando il nome del field-colonna su cui effetturare l'ordinamento in questa maniera:

[C#]

    [MetadataType(typeof(TB_SEASONMetadata))]
    [DisplayColumn("NAME","NAME", false)]
    public partial class TB_SEASON
    {         
         public override string ToString()
         {
             return NAME + DESCRIPTION;
         }
    }

 

In effetti resta la perplessità sul fatto che il primo parametro di tale decoratore sia un field che a tutti gli effetti poi non è utilizzato: in fatti nell'esempio il field NAME è stato specificato essere la DisplayColumn quando in realtà verrà comunque visualizzato l'override del ToString()... In ogni caso il secondo parametro che è la sortcolumn funziona correttamente e noi otteniamo il risultato sperato.