私は様々な場所から一緒にこれを石畳にしました。私がしようとしているのは、ユーザーロールに基づいたカスタムページタイプと、管理者側からのオプション(visibiltyType)を表示するか非表示にするかです。Kentico ascx変換の構文
これまでのところ動作しているようですが、私の条件文の構文が最良かどうかはわかりません。 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>
OnDataBindingではなくOnLoadメソッドをオーバーライドできますか? – Enn
それはそのページを殺した。しかし、エラーの確かに。 –