Rendering URLs

Render Page URLs and Media URLs in User Control functions

To render a page URL or a media URL in a C1 CMS compliant way, you can use /page(...) and /media(...):

.ascx

 
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="RenderUrls.ascx.cs" Inherits="C1Function" %>

  <asp:HyperLink runat="server" ID="funnyPage"  ><%= PageUrl.Data.Title %></asp:HyperLink>
  <asp:Image ID="fancyImage" runat="server" />



Download the sample

.ascx.cs

 
using System;
using Composite.Functions;
using Composite.Data;
using Composite.Data.Types;


public partial class C1Function : Composite.AspNet.UserControlFunction
{
    public override string FunctionDescription
    {
        get
        {
            return "A demo function that shows a page link and an image.";
        }
    }

    public DataReference<IPage> PageUrl { get; set; }

    public DataReference<IMediaFile> ImageSource { get; set; }  

    protected void Page_Load(object sender, EventArgs e)
    {
        funnyPage.NavigateUrl = String.Format("/page({0})", PageUrl.Data.Id);
        fancyImage.ImageUrl = String.Format("/media({0})", ImageSource.Data.Id);
    }
}

Download the sample

With page URLs you can also use SitemapNavigator to render URLs.

.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="RenderUrlsWithSitemapNavigator.ascx.cs" Inherits="C1Function" %>

<asp:HyperLink runat="server" ID="funnyPage"  ><%= PageUrl.Data.Title %></asp:HyperLink>

Download the sample

.ascx.cs

using System;
using Composite.Functions;
using Composite.Data;
using Composite.Data.Types;

public partial class C1Function : Composite.AspNet.UserControlFunction
{
    public override string FunctionDescription
    {
        get 
        { 
            return "A demo function that shows a page link using SitemapNavigator."; 
        }
    }

    public DataReference<IPage> PageUrl { get; set; }

    protected void Page_Load(object sender, EventArgs e)
    {
        using (var connection = new DataConnection()){
            funnyPage.NavigateUrl = connection.SitemapNavigator.GetPageNodeById(PageUrl.Data.Id).Url;
        }
    }
}
 
Download the sample