Skip to main content
A newer version of this page is available. .

BaseXafPage.CustomizeTemplateContent Event

Occurs when the template content is created.

Namespace: DevExpress.ExpressApp.Web.Templates

Assembly: DevExpress.ExpressApp.Web.v18.2.dll

Declaration

public event EventHandler<CustomizeTemplateContentEventArgs> CustomizeTemplateContent

Event Data

The CustomizeTemplateContent event's data class is CustomizeTemplateContentEventArgs. The following properties provide information specific to this event:

Property Description
TemplateContent Gets a User Control that specifies the BaseXafPage page’s content.

Remarks

Handle this event to customize template content. For instance, you can change the application logo displayed in the top-left corner.

Note

The CustomizeTemplateContent event is not designed for in-depth template customization. Instead, use the approach described at How to: Customize an ASP.NET Template topic.

Open the Default.aspx.cs (Default.aspx.vb) file and add the Page_Init method to the Default class to handle the Page.Init event, and then subscribe to the CustomizeTemplateContent event. Use the CustomizeTemplateContentEventArgs.TemplateContent parameter or BaseXafPage.TemplateContent property to access the template content. The template content exposes the required Image control via the HeaderImageControl property.

protected void Page_Init() {
    CustomizeTemplateContent += delegate(object sender, CustomizeTemplateContentEventArgs e) {
        DefaultVerticalTemplateContent content = TemplateContent as DefaultVerticalTemplateContent;
        if (content == null) return;
        content.HeaderImageControl.DefaultThemeImageLocation = "~/Images";
        content.HeaderImageControl.ImageName = "CustomLogo.png";
    }; 
}

With this code, the application logo will be loaded from the CustomLogo.png file located in the Images folder of the ASP.NET application project.

The image is specified by the DefaultThemeImageLocation and ImageName properties of the ThemedImageControl, located on the main window Template. The ImageName property specifies the Logo image name and the DefaultThemeImageLocation attribute specifies the location where XAF searches for this image. The following list explains how these property values are treated.

  1. If the DefaultThemeImageLocation attribute value begins with a tilde character (“~”), it is treated as a relative path to the image specified by the ImageName attribute.
  2. If the DefaultThemeImageLocation attribute value does not begin with a tilde character, this value is concatenated with the ImageName attribute value. The concatenation result is treated as the name of a resource from the DevExpress.Web.ASPxThemes.18.2.dll.
  3. If the DefaultThemeImageLocation attribute value is not specified or is an empty string, then the ImageName attribute value is treated as the name of a resource image without the extension (an example is available in the How to: Change an Application Logo and Info topic).

You can access other controls of a template in a similar way. If a control is not directly exposed, use the Control.FindControl to search for it. Review the template’s *.ascx file to determine the ID of the necessary control. You can find the ascx files at %PROGRAMFILES(x86)%\DevExpress 18.2\Components\Sources\DevExpress.ExpressApp\DevExpress.ExpressApp.Web\Resources\.

If modifying the Default.aspx.cs (Default.aspx.vb) source is not appropriate in your scenario, e.g., you want to access the template content from a module, handle the XafApplication.CustomizeTemplate event. Get the BaseXafPage object by casting the CustomizeTemplateEventArgs.Template parameter to the BaseXafPage type and then subscribe to the CustomizeTemplateContent event.

Instead of handling the CustomizeTemplateContent event, you can apply a custom template and modify the ThemedImageControl element in the following manner.

<cc4:ThemedImageControl ID="TIC" DefaultThemeImageLocation="~/Images/"
    ImageName="CustomLogo.png" BorderWidth="0px" runat="server" />
See Also