2010-06-17 10 views
1

Je crée un widget dans Ektron CMS400 et j'essaie de récupérer dynamiquement l'identifiant de mise en page pour afficher le titre. À l'heure actuelle, j'ai ce code:Ektron pageID en C#

PageTitle = contentAPI.GetContent(110, Ektron.Cms.Content.EkContent.ContentResultType.Published).Title 

Je voudrais remplacer la 110 avec une référence réelle à l'ID de la page courante (bloc non content) en cours d'affichage. Merci beaucoup!

Répondre

3

Wow, je me sens idiot. Même si l'ID de page n'apparaît pas dans l'URL, je peux toujours le référencer via Request ["pageid"]. Oh frere.

+0

Cela pourrait être dû à avoir aliasing activé - l'URL dans le navigateur sera www.example.com/AnArticleOnFoo qui sera redirigé vers www.example.com/template.asxp?pageid=23&id=32 – Spongeboy

4

Vous pouvez enregistrer un appel de base de données en ne récupérant pas le contenu. La mise en page a déjà été chargée.

/// <summary> 
/// Gets the page Basedata. 
/// </summary> 
/// <returns>The content or null if not on a PageBuilder layout</returns> 
private ContentBase GetPageBasedata() 
{ 
    PageBuilder myPage = this.Page as PageBuilder; 
    if (myPage != null) 
    { 
     return myPage.Basedata; 
    } 

    return null; 
} 
+0

Cela m'a vraiment aidé. Savez-vous dans quelle base de données Ektron stocke les pages du générateur de pages. –

+0

Contenu, en tant que XML – MaxPRafferty

2

Cette fonction renvoie l'ID de page d'une page Ektron.

public long GetPageID() 
{ 
    long pageid = new long(); 

    Ektron.Cms.PageBuilder.PageBuilder myPage = this.Page as Ektron.Cms.PageBuilder.PageBuilder; 
       if (myPage != null) 
       { 

        pageid = myPage.Pagedata.pageID; 
       } 

}