HAVIT Knowledge Base

Vývoj webových aplikací, .NET, SQL, návrh
Welcome to HAVIT Knowledge Base Sign in | Join | Help
-
Home Články Forums Obrázky Soubory

ASP.NET

Vývoj webových aplikací ASP.NET

Vlastní atributy direktivy @Page

V dokumentaci to nejspíš nenajdete, nicméně ASP.NET opravdu parsuje direktivu @Page a hodnoty atributů v ní nalezených se snaží uložit do memberů příslušného jména.

Tímto způsobem funguje atribut nejenom Title, ale i atribut vlastní:

<%@Page CodeBehind="Default.aspx.cs" Inherits="Havit.Demo.Default_aspx" Title="Existující atribut" Nadpis="moje hodnota" MujCiselnyAtribut="15" %>...funguje to dokonce i na jiné typy než string, co jsem zkoušel, tak parser v pohodě zchroustne číselné typy a dělá korektní typovou kontrolu.

V samotné stránce (užitečné je to samozřejmě zejména v nějakém společném prapředkovi) se pak hodnota atributu dostane do příslušné property:

/// <summary>
/// Rodičovská třída všech stránek webu.
/// </summary>
public class PageBase : Page
{
    /// <summary>
    /// Nadpis stránky.
    /// </summary>
    public string Nadpis
    {
        get { return _nadpis; }
        set { _nadpis = value; }
    }
    private string _nadpis;
}
...úplně stejně to nejspíš půjde i s direktivami @Control či @Master.
Published 14. května 2007 14:44 by Robert Haken
Filed under:

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

 

Tomáš Půža said:

Nějak se mi toto nepodařilo zprovoznit při použití Master Page > Content Page. Pokud vlastní atribut použiji ve stránce, která není pod Master Page, vše funguje v pořádku. Jakmile je stránka součástí Master Page, vyhodí to vyjímku.

června 19, 2007 15:35
 

Robert Haken said:

to TP: My to používáme pro Content Page a bez problémů. Content Page nám dědí od PageBase. Jakou výjimku Vám to hází? Určitě máte v hiearchii dědičnosti tu PageBase (viz třeba debugger). Zkuste si do web.configu dát<pages pageBaseType="MyNamespace.PageBase, MyAssembly" />.

června 19, 2007 20:07

What do you think?

(required) 
(optional)
(required) 
Enter the code you see below

Submit