繁体   English   中英

以Umbraco用户/自定义控件数据类型连接到数据库

[英]Connecting to DB in Umbraco User/Custom Control Data Type

我正在为Umbraco网站开发一种新的数据类型,并一直在构建自定义控件来适应这种情况。 我需要查询活动数据源的文档类型。 它会返回几个,我想用这些项目填充一个DropDownBox。 我已经准备好查询并进行下拉列表,但是在连接数据库以执行查询时遇到了麻烦。 由于它位于自定义控件中,因此数据源不是内置在控件本身中,而是内置在Umbraco中。 任何帮助,将不胜感激!

如果有人感兴趣,我可以使用以下方法解决此问题。 包括ISqlHelper的方法:

public static ISqlHelper SqlHelper
    {
        get
        {
            return Application.SqlHelper;
        }
    }

使用ISqlHelper,我能够运行查询并填充下拉列表:

IRecordsReader docTypes = SqlHelper.ExecuteReader("SELECT nodeId, alias FROM cmsContentType WHERE alias IN ('Product','Article') ORDER BY alias");

        while (docTypes.Read())
        {
            string dtName = docTypes.GetString("alias");
            string dtId = docTypes.GetInt("nodeId").ToString();

            _lstDocType.Items.Add(new ListItem(dtName, dtId));
        }

希望对别人也有帮助!

您还可以使用Umbraco业务逻辑通过以下方式获取所有文档类型:

var DocTypes = um.cms.businesslogic.web.DocumentType.GetAllAsList();
var DocTypeDropDown = new DropDownList();
foreach (var DocType in DocTypes)
{
    var DocTypeListItem = new ListItem
    {
        Text = DocType.Text,
        Value = DocType.Id.ToString()
    };
    DocTypeListItem.Attributes.Add("rel", DocType.Alias);
    DocTypeDropDown.Items.Add(DocTypeListItem);
}

您显然可以按照自己的喜好安排DropDownList,但我只是想引起人们对以下属性的关注:文本,别名和Id是您要使用DocType的可能项目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM