Подключение к БД в Umbraco User / Custom Control Тип данных - PullRequest
0 голосов
/ 20 апреля 2011

Я работаю над новым типом данных для сайта Umbraco и создаю собственный элемент управления, чтобы учесть это. Мне нужно запросить активный источник данных для типов документов. Он собирается вернуть несколько, и я хочу заполнить DropDownBox этими элементами. У меня есть запрос и выпадающий список готов к работе, но у меня проблемы с подключением к БД для выполнения запроса. Поскольку он находится в пользовательском элементе управления, источник данных встроен не в сам элемент управления, а в Umbraco. Любая помощь по этому вопросу будет принята с благодарностью !!

Ответы [ 2 ]

1 голос
/ 21 апреля 2011

Если кому-то интересно, я смог решить это, используя следующее. Включите метод для 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));
        }

Надеюсь, это поможет кому-то еще!

0 голосов
/ 11 апреля 2012

Вы также можете использовать Umbraco Business Logic, чтобы получить все типы документов с помощью:

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 так, как вам нравится, я просто хотел обратить внимание на свойства: Text, Alias ​​и Id как вероятные элементы, которые вы захотите использовать в DocType.

...