我正在编写自定义字段类型,用户可以在其中键入站点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
答案 0 :(得分:2)
我会使用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));
}