从 Kentico 中的自定义类访问 Webpart 属性

Posted

技术标签:

【中文标题】从 Kentico 中的自定义类访问 Webpart 属性【英文标题】:Access Webpart properties from a custom class in Kentico 【发布时间】:2018-03-27 10:29:54 【问题描述】:

我有一个名为 OverrideMacros.ascx 的 Webpart 和一个名为“MetaTagReplace”的公共属性

public partial class CMSWebParts_VLine_Management_OverrideMacros : CMSAbstractWebPart

    protected void Page_Load(object sender, EventArgs e)
    

    

    //Swtich to check whether to replace exiting <meta> tags with modified <meta> tags.
    public bool MetaTagReplace  get; set;  


我想从 App_Code 中的自定义类访问此 Web 部件属性“MetaTagReplace”。我怎样才能做到这一点?以下是我到目前为止所做的。

    CMSAbstractWebPart overrideMacrosWebPart = RequestStockHelper.GetItem("OverrideMacros") as CMSAbstractWebPart;
  if (overrideMacrosWebPart != null)
    

    

overrideMacrosWebPart 始终为空

【问题讨论】:

从架构设计的角度来看,从另一个 Web 部件、页面或类访问 Web 部件的属性是不正确的 - App_Code 中的类不能依赖于某些 Web 部件! 【参考方案1】:

您必须引用完整的类名才能访问该属性。 CMSWebParts_VLine_Management_OverrideMacros。此外,您的 webpart 中的属性编码不正确。如果你想利用 Kentico 中的 UI 功能,它应该是这样的

get return ValidationHelper.GetString(GetValue("PropertyName"), ""); 

也许 read the Kentico documentation 在开发 webparts 上。

【讨论】:

以上是关于从 Kentico 中的自定义类访问 Webpart 属性的主要内容,如果未能解决你的问题,请参考以下文章

Kentico,带有用于上传 CSV 的 Web 部件的模块

搜索结果转换中的多个索引不适用于Kentico

创建UI以管理Kentico中自定义模块中的多个类之间的关系

从 MAT 文件中读取 C 应用程序中的自定义类

如何根据 vue.js 中的自定义权限授予访问路由的权限?

iOS:如何从 tableview 的自定义单元格中的 UITextField 访问值