首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kentico转换语法

Kentico转换语法
EN

Stack Overflow用户
提问于 2016-05-09 21:53:34
回答 2查看 654关注 0票数 0

这是我从不同的地方拼凑出来的。我尝试做的是根据用户角色和管理员端(visibiltyType)的选项显示或隐藏自定义页面类型。

到目前为止,它似乎是有效的,但我不确定我的条件语句语法是最好的。C#不是我的强项。

这是我的转变:

代码语言:javascript
复制
<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>

EN

回答 2

Stack Overflow用户

发布于 2016-05-09 22:48:10

您可以配置Page Type权限并避免转换中的所有检查。

票数 1
EN

Stack Overflow用户

发布于 2016-05-09 22:22:04

这对我来说似乎是可行的:

代码语言:javascript
复制
<script runat="server">
  protected override void OnLoad(EventArgs e)
    {
      alert.Visible = true;
    }
 </script>

<asp:placeholder id="alert" runat="server" visible="false">
  Placeholder
</asp:placeholder>

但是,对于您的情况,我建议切换到XML/转换,因为它的更高效/更快,而且编写这样的条件也更容易。在您的情况下,它将与编写以下代码一样好:

代码语言:javascript
复制
{% if(CurrentUser.IsInRole("Editors")){ %}

User is in role editors

{% } else { %}

user is not in editors role

{% }%}

当然,它可以更复杂,您甚至可以为此编写一个自定义的宏方法,但您已经明白了:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37117587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档