Condividi tramite


Procedura: personalizzare il layout di una singola tabella mediante un modello di pagina personalizzato

Aggiornamento: novembre 2007

Quando si utilizza ASP.NET Dynamic Data, esistono due approcci generali per la definizione di modelli personalizzati. I modelli di campo possono essere personalizzati per il comportamento specifico dei campi e i modelli di pagina possono essere personalizzati per il comportamento specifico delle tabelle.

Il primo approccio consiste nel personalizzare i campi dati di una tabella creando dei modelli di campo personalizzati. Si può quindi creare una classe parziale il cui nome corrisponde a quello della classe di entità che rappresenta la tabella. Nella classe parziale è possibile utilizzare l'attributo UIHintAttribute per specificare il nome del modello di campo personalizzato utilizzato per la visualizzazione. Per ulteriori informazioni, vedere la classe Procedura: personalizzare l'aspetto e il comportamento dei campi dati di un controllo Dynamic Data.

Il secondo approccio consiste nel creare una sottocartella nella cartella DynamicData\CustomPages. Il nome della sottocartella corrisponde alla funzione di accesso della tabella nella classe del contesto dati della tabella che si desidera personalizzare. Si può quindi creare un modello di pagina personalizzato nella cartella. In questa sezione viene illustrato come utilizzare questo secondo approccio.

I modelli di pagina predefiniti funzionano per tutte le tabelle e non utilizzano informazioni specifiche dello schema. Tuttavia, è possibile utilizzare le informazioni sullo schema per visualizzare campi specifici quando si utilizzano modelli di pagina personalizzati per tabelle specifiche.

Per creare un modello di pagina personalizzato

  1. Verificare che tali pagine di supporto temporaneo siano attivate. Nel file Global.asax, impostare la proprietà ContextConfiguration.ScaffoldAllTables su true nel metodo MetaModelRegisterContext().

    Nell'esempio seguente viene mostrato il metodo RegisterRoutes che include una chiamata per attivare le pagine di supporto temporaneo e l'azione List.

    Public Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
        Dim model As New MetaModel
        model.RegisterContext(GetType(AdventureWorksLTDataContext), _
            New ContextConfiguration() With {.ScaffoldAllTables = True})
    
        routes.Add(New DynamicDataRoute("{table}/{action}.aspx") With { _
             .Constraints = New RouteValueDictionary(New With _
                {.Action = "List|Details|Edit|Insert"}), _
                 .Model = model})
    
    End Sub
    
    public static void RegisterRoutes(RouteCollection routes) {
         MetaModel model = new MetaModel();
    
        model.RegisterContext(typeof(AdventureWorksLTDataContext), 
            new ContextConfiguration() { ScaffoldAllTables = true });
    
         routes.Add(new DynamicDataRoute("{table}/{action}.aspx")
         {
             Constraints = new RouteValueDictionary(new { action = 
                "List|Details|Edit|Insert" }),
                Model = model
            });
        }
    

    Per ulteriori informazioni sull'attivazione delle pagine di supporto temporaneo, vedere Procedura dettagliata: creazione di un nuovo sito Web Dynamic Data utilizzando le pagine di supporto temporaneo..

  2. Creare una sottocartella nella cartella DynamicData\CustomPages. Per il nome della cartella, utilizzare le seguenti linee guida:

    • Se il modello di dati si basa su LINQ to SQL, utilizzare come nome della cartella il nome della tabella nel contesto dati. Ad esempio per creare una pagina personalizzata per la tabella Product nel database AdventureWorksLT, creare una directory denominata DynamicData\CustomPages\Products.

    • Se il modello di dati si basa su ADO.NET Entity Framework, utilizzare come nome della cartella il nome della tabella nel contesto dell'oggetto. Ad esempio, per creare una pagina personalizzata per la tabella Product nel database AdventureWorksLT, creare una directory denominata DynamicData\CustomPages\Product.

  3. Copiare un modello di pagina esistente dalla cartella DynamicData\PageTemplates nella sottocartella sotto a DynamicData\CustomPages con il nome della funzione di accesso della tabella.

    Ad esempio, copiare DynamicData\PageTemplates\List.aspx in DynamicData\CustomPages\Products (per LINQ to SQL) o in DynamicData\CustomPages\Product (per Entity Framework).

  4. Aggiungere le personalizzazioni al modello di pagina copiato nel passaggio precedente.

    Nell'esempio seguente viene illustrato il markup per un'intestazione che è stata modificata.

    <h2> Custom Pages Demo <%= table.DisplayName%></h2>
    
  5. Per testare il modello personalizzato, passare alla tabella in un browser e confermare che il modello include le modifiche.

    Ad esempio, passare alla tabella Product. Verrà visualizzato "Custom Pages Demo Product" (LINQ to SQL) e "Custom Pages Demo Product" (Entity Framework)".

Vedere anche

Attività

Procedura dettagliata: creazione di un nuovo sito Web Dynamic Data utilizzando le pagine di supporto temporaneo.

Concetti

Cenni preliminari sulle pagine di supporto temporaneo e sui modelli di pagina di ASP.NET Dynamic Data

Altre risorse

Utilizzo di ASP.NET Dynamic Data