This post is on the older side and its content may be out of date.
Be sure to visit our blogs homepage for our latest news, updates and information.
public
void
AddControlToPage(
string
pageTitle,
string
placeHolder,
string
caption)
{
var pageManager = PageManager.GetManager();
var page = pageManager.GetPageNodes().Where(p => p.Title == pageTitle).SingleOrDefault();
if
(page !=
null
)
{
var temp = pageManager.EditPage(page.Page.Id);
Guid controlID = Guid.NewGuid();
if
(temp !=
null
)
{
var pageControl = pageManager.CreateControl<PageDraftControl>(controlID);
pageControl.Caption = caption;
pageControl.ObjectType =
"Telerik.Sitefinity.Web.UI.LayoutControl, Telerik.Sitefinity"
;
pageControl.PlaceHolder = placeHolder;
pageControl.IsLayoutControl =
true
;
pageManager.SetControlDefaultPermissions(pageControl);
var prop = pageManager.CreateProperty();
prop.Name =
"Layout"
;
prop.Value =
"~/SFRes/Telerik.Sitefinity.Resources.Templates.Layouts.Column1Template.ascx"
;
pageControl.Properties.Add(prop);
temp.Controls.Add(pageControl);
pageManager.PagesLifecycle.CheckIn(temp);
pageManager.SaveChanges();
var bag =
new
Dictionary<
string
,
string
>();
bag.Add(
"ContentType"
,
typeof
(PageNode).FullName);
WorkflowManager.MessageWorkflow(page.Id,
typeof
(PageNode),
null
,
"Publish"
,
false
, bag);
}
}
}
var pageControl = pageManager.CreateControl<PageDraftControl>(controlID);
pageControl.Caption = caption;
pageControl.ObjectType =
"Telerik.Sitefinity.Web.UI.LayoutControl, Telerik.Sitefinity"
;
pageControl.IsLayoutControl =
true
;
var prop = pageManager.CreateProperty();
prop.Name =
"Layout"
;
prop.Value =
"~/SFRes/Telerik.Sitefinity.Resources.Templates.Layouts.Column1Template.ascx"
;
pageControl.Properties.Add(prop);
public
void
QueryLayoutControls(
string
pageTitle
)
{
var pageManager = PageManager.GetManager();
var page = pageManager.GetPageNodes().Where(p => p.Title == pageTitle).SingleOrDefault();
if
(page !=
null
)
{
Guid controlID = Guid.NewGuid();
//find layout control on a page by one of the shown properties
var pageControls = pageManager.GetControls<PageDraftControl>()
.Where(c=>c.ObjectType.Equals(
"Telerik.Sitefinity.Web.UI.LayoutControl, Telerik.Sitefinity"
)
&& c.Caption.Equals(
"100%"
)
&& c.IsLayoutControl ==
true
);
foreach
(var control
in
pageControls)
{
var placeholder = control.PlaceHolder;
var placeholders = control.PlaceHolders;
var property = control.Properties;
var cap = control.Caption;
//here you can the name of the .ascx file used for this control
var nameProp = property.Where(pro=> pro.Name.Equals(
"Layout"
));
}
}
}
ObjectType.Equals(
"Telerik.Sitefinity.Web.UI.LayoutControl, Telerik.Sitefinity"
)
c.Caption.Equals(
"100%"
)
var placeholders = control.PlaceHolders;
Subscribe to get all the news, info and tutorials you need to build better business apps and sites