【发布时间】:2016-08-02 20:00:05
【问题描述】:
我从不同的地方拼凑了这个。我想要做的是显示或隐藏基于用户角色的自定义页面类型,以及来自管理员端的选项(visibiltyType)。
到目前为止,它似乎工作正常,但我不确定我的条件语句语法是否最好。 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 吗?
-
这杀死了页面。虽然不确定错误。