Я собрал это вместе из разных мест. То, что я пытаюсь сделать, это показать или скрыть собственный тип страницы, основанный на роли пользователя, и вариант со стороны администратора (visibiltyType).Синтаксис преобразования трансформации Kentico
До сих пор, похоже, он работает, но я не уверен в том, что синтаксис синтаксиса является лучшим. C# не моя сильная сторона.
Вот моя трансформация:
<script runat="server">
public bool visibility;
public string visiblityType;
protected override void OnDataBinding(EventArgs e)
{
visiblityType = Eval("Visibility").ToString();
if(CMS.Membership.MembershipContext.AuthenticatedUser.IsInRole("scona-cms_resources_branchdirectors", CMS.SiteProvider.SiteContext.CurrentSiteName) && visiblityType == "ncp"){
alert.Visible = true;
}
if(CMS.Membership.MembershipContext.AuthenticatedUser.IsInRole("scona-cms_resources_salesreps", CMS.SiteProvider.SiteContext.CurrentSiteName) && visiblityType == "ncp"){
alert.Visible = true;
}
if(CMS.Membership.MembershipContext.AuthenticatedUser.IsInRole("scona-kff-headoffice", CMS.SiteProvider.SiteContext.CurrentSiteName) && visiblityType == "ncp"){
alert.Visible = true;
}
if(CMS.Membership.MembershipContext.AuthenticatedUser.IsInRole("scona-cms_resources_partnernetwork", CMS.SiteProvider.SiteContext.CurrentSiteName) && visiblityType == "cp"){
alert.Visible = true;
}
if (visiblityType == "both"){
alert.Visible = true;
}
}
</script>
<asp:placeholder id="alert" runat="server" Visible="false">
<li><%# Eval("Visibility") %> | <%# Eval("AlertDate") %> - <%# Eval("AlertTitle") %> <%# IfEmpty(Eval("AlertCopy"),"", " <a href='" + GetDocumentUrl() + "'>Read More</a>") %></li>
</asp:placeholder>
Можете ли вы попытаться переопределить метод OnLoad вместо OnDataBinding? – Enn
Это убило страницу. Однако не уверен в ошибке. –