2011-12-09 5 views
1

사용자가 사이트 URL을 입력하고 사이트를 선택한 다음 선택한 목록의 열을 선택할 수있는 사용자 지정 필드 형식을 프로그래밍하고 있습니다.SharePoint 목록 열 가져 오기

목록의 열을 어떻게 가져 옵니까?

내가 지금 시도한 솔기는 작동하지만 너무 많은 데이터를 받고 있습니다. 여기에 내가 열을 얻는 방법이다 : 나는 필드를 표시하기 위해 SPField.Title을 사용

+0

예 예상보다 많은 열이 나타납니다. – Sulby

답변

2

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. 잠재 고객에 따라 SPField.InternalName도 표시하는 것이 좋습니다. 구성원 SPField.AuthoringInfo은 필드에 대한 자세한 정보를 반환합니다. 동일한 제목의 필드에 유용합니다.

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

여기서 괄호 안의 텍스트는 제작 정보 필드에서 온 것입니다.

업데이트 :

list.Fields 반환 SPField 객체를 포함하는 SPFieldCollection.

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

내 코드 예제에서 SPField는 어떻게 사용합니까? – Sulby

+0

답변을 업데이트했습니다 ... – Stefan

+0

흠, 당신이 그리워 할 것 같아요. 나는 네가 그 말을 내 예증에 담을 방법을 말해 주는지 물었다. 질문의 코드에? – Sulby