Получить столбцы списка SharePoint - PullRequest
1 голос
/ 09 декабря 2011

Я программирую тип настраиваемого поля, в котором пользователь может ввести URL-адрес сайта, выбрать сайт и выбрать столбец из выбранного списка.

Как получить столбцы списка?

То, что я пробовал сейчас, похоже, работает, но я получаю слишком много данных. Вот как я могу получить столбцы:

private void getColumnsOfSelectedList()
{
    DdlLookupFieldDataList.Items.Clear();

    if (!string.IsNullOrEmpty(LabelLookupFieldTargetURLText.Text))
    {
        //Get the lists of the site from the Site URL
        site = new SPSite(LabelLookupFieldTargetURLText.Text);
        SPWeb web = site.OpenWeb();

        foreach (SPList list in web.Lists)
        {
            if (list.Title == DdlLookupFieldTargetList.SelectedItem.Text)
                foreach (var item in list.Fields)
                    DdlLookupFieldDataList.Items.Add(item.ToString());
        }
    }
}

BR

1 Ответ

2 голосов
/ 09 декабря 2011

Я бы использовал SPField.Title для отображения поля.В зависимости от аудитории имеет смысл также отображать SPField.InternalName.Член SPField.AuthoringInfo возвращает больше информации о поле.Это полезно для полей с одинаковым заголовком.

Title
Title (linked to item with edit menu)
Title (linked to item)

Где текст в скобках взят из информационного поля авторинга.

Обновление:

list.Fields возвращает SPFieldCollection который содержит SPField объектов.

foreach (SPField /* <-- */  field in list.Fields)
{
  DdlLookupFieldDataList.Items.Add(new ListItem(
    String.Format("{0} {1}", field.Title, field.AuthoringInfo), 
    field.InternalName));
}
...