使用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 ')?
答案 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;