从kentico中的webpart属性获取文本

时间:2018-04-04 15:38:01

标签: kentico

使用kentico 10.我已按照https://docs.kentico.com/k10/custom-development/developing-web-parts/creating-new-web-parts的步骤实施了自定义网页部分。

我创建了一个webpart属性,它从SQL查询中获取数据,如下所示

SELECT
  DocumentGuid AS value, 
  DocumentName AS text 
FROM
  View_CMS_Tree_Joined 
WHERE 
  NodeAliasPath LIKE '/SomePath' 
  AND DocumentCulture LIKE 'en-us' 
ORDER BY
  DocumentName

在.cs文件中,我正在使用kentico文档中指定的以下代码读取此表单上选择的值。

public string MyProperty
{
    get
    {
        return DataHelper.GetNotEmpty ( GetValue ( "MyProperty" ).ToString ( ), "" );
    }
}

此属性为我提供了上面的SQL查询中的 DocumentGuid (' '),该查询按预期工作。有没有方法可以从SQL查询中读取 DocumentName (' text ')?

3 个答案:

答案 0 :(得分:0)

您可能会从当前上下文中获取文档名称,如此

CMS.DocumentEngine.DocumentContext.CurrentDocument.DocumentName

答案 1 :(得分:0)

如果您在代码中执行此操作,则需要执行以下操作:

string docName = ""; var doc = DocumentHelper.GetDocuments("custom.pagetype").WhereEquals("DocumentGuid", MyProperty).FirstObject; if (doc != null) { docName = doc.DocumentName; }

如果你需要一个宏,你可以这样做:

Documents["/Your-path"].Children.WithAllData.Where("DocumentGUID = 'your guid'").FirstItem.DocumentName

答案 2 :(得分:0)

如果我理解正确,您希望从dropdownList.SelectedItem.Text;等下拉菜单中获取“文字” 这不可能。所有Web部件都继承自CMSAbstractWebPart 你唯一能得到的就是property value。唯一可以获得的方法是在Web部件中创建自己的方法来查询数据库。

DataSet _myDocs = DocumentHelper.GetDocuments()
.Path("/SomePath", PathTypeEnum.Children).Culture("en-us").Result;