I have a page with some global elements. Is it possible to loop through the paragraphs and add them to a page? Instead of adding them seperatly with <!--@Global:Paragraph.Content(16086)-->
Developer forum
E-mail notifications
Loop through paragraphs
Replies
You can do this in a Razor template using @RenderParagraphContent:
@{
var paragraphIds = new List<int>() { 4, 7, 8, 9, 87, 112 }; // @TODO Get the real list of ids
foreach (var id in paragraphIds) {
@: @RenderParagraphContent(id)
}
}
A better solution might be to use items for the content you want to include in your template. Then you can add an item publisher in your template
@RenderItemList(new {
ItemType = "Paragraph",
ListSourceType = "Page",
ListSourcePage = @Pageview.ID, // @TODO Use the real page id (probably using a Website item property)
IncludeParagraphItems = true,
ItemFieldsList = "*",
ListTemplate = "ItemPublisher/List/ListStuff.cshtml",
ListPageSize = 10
})
or using HTML syntax
<!--@Item.RenderList(ItemType:Paragraph;
ListSourceType:Page;
ListSourcePage = 15158; // TODO Use the real page id
IncludeParagraphItems:true;
ItemFieldsList:*;
ListTemplate:ItemPublisher/List/ListStuff.cshtml)-->
See http://templates.dynamicweb.com/TemplateTags/Dynamicweb-template-tags/Module-tags/Item-publisher/Item-Render.aspx for details.
Best regards,
Mikkel
Hi Mikkel,
Your solution worked for like a charm but still i have a problem with global elements they are not rendering on a page how can i fix it? i am using the following code to get the paragraphs content
foreach (Dynamicweb.Content.Paragraph i2 in Dynamicweb.Content.Paragraph.GetParagraphsByPageID(i.ID))
{
@: @RenderParagraphContent(i2.ID)
}
Thanks in advance,
umar
You must be logged in to post in the forum