SharePoint MultipleLookupField
컨트롤 사용 방법: 단계별 가이드
SharePoint에서 작업할 때, 한 목록의 여러 항목에 대해 다른 목록의 항목과 연관시켜야 하는 상황이 발생할 수 있습니다. 이를 달성하기 위한 유용한 컨트롤이 바로 MultipleLookupField
입니다. 이번 포스트에서는 MultipleLookupField
컨트롤의 사용 방법을 단계별로 안내하여, 웹 파트 내에서 여러 조회 값을 표시하고 관리하는 방법을 이해하도록 도와드리겠습니다.
문제: 두 목록 연결하기
주요 도전 과제는 SharePoint의 컨텍스트에서 실행되는 웹 페이지에 MultipleLookupField
컨트롤을 통합하는 것입니다. 예를 들어, 작업과 문서와 같은 두 SharePoint 필드 컬렉션을 연결하고자 할 수 있습니다. 이를 위해서는 기본적인 설정이 필요하며, 컨트롤을 효과적으로 조작하는 방법을 이해해야 합니다.
MultipleLookupField 시작하기
1단계: SharePoint 환경 설정
- 팀 사이트 설정: SharePoint 내에서 새 팀 사이트를 만듭니다.
- 작업 추가: 작업 목록으로 가서 몇 가지 작업을 생성합니다.
- 문서 생성: 공유 문서 라이브러리에 문서를 업로드합니다.
- 조회 열 생성:
- 공유 문서 라이브러리에서 “Related"라는 새 열을 생성합니다.
- 이 열을 작업 목록의 “Title” 필드를 참조하는 조회 필드로 설정합니다.
- 이 열에 대해 여러 값을 허용하도록 설정합니다.
2단계: 웹 파트 생성
MultipleLookupField
를 활용하기 위해 웹 파트를 생성해야 합니다. 다음은 이 과정을 안내하는 간단한 예입니다.
웹 파트 기본 구조
Label l;
MultipleLookupField mlf;
protected override void CreateChildControls()
{
base.CreateChildControls();
SPList list = SPContext.Current.Web.Lists["Shared Documents"];
if (list != null && list.Items.Count > 0)
{
LiteralControl lit = new LiteralControl("Associate tasks to " + list.Items[0].Name);
this.Controls.Add(lit);
mlf = new MultipleLookupField();
mlf.ControlMode = SPControlMode.Edit;
mlf.FieldName = "Related";
mlf.ItemId = list.Items[0].ID;
mlf.ListId = list.ID;
mlf.ID = "Related";
this.Controls.Add(mlf);
Button b = new Button();
b.Text = "Change";
b.Click += new EventHandler(bClick);
this.Controls.Add(b);
l = new Label();
this.Controls.Add(l);
}
}
void bClick(object sender, EventArgs e)
{
l.Text = "";
foreach (SPFieldLookupValue val in (SPFieldLookupValueCollection)mlf.Value)
{
l.Text += val.LookupValue.ToString() + " ";
}
SPListItem listitem = mlf.List.Items[0];
listitem["Related"] = mlf.Value;
listitem.Update();
mlf.Value = listitem["Related"];
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
EnsureChildControls();
}
3단계: 웹 파트 배포
- 빌드 및 배포: 코드를 컴파일하고 웹 파트를 SharePoint 환경에 배포합니다.
- 사이트에 웹 파트 추가: 팀 사이트 홈페이지로 이동하여 새 웹 파트의 인스턴스를 추가합니다.
클릭 핸들러 이해하기
클릭 이벤트 핸들러 bClick
는 UI를 업데이트하는 데 중요합니다.
- 값 가져오기: 선택된 모든 값을
MultipleLookupField
에서 가져와 표시하는 것으로 시작합니다. - 목록 항목 업데이트: 선택된 작업으로 문서 목록의 “Related” 필드를 업데이트하여 UI와 목록 항목 간의 동기화를 보장합니다.
추가 사항
- 제공된 예제는 매우 기본적인 것으로, 포괄적인 오류 처리가 부족하며 프로덕션 사용을 목표로 하지 않습니다. 더 나은 사용성을 위해 확장하는 것이 좋습니다.
mlf.Value = listitem["Related"];
줄을 주석 처리하면 UI가 기본 데이터와 제대로 동기화되지 않을 수 있으므로, 이 줄은 올바른 기능을 위해 필수적입니다.
결론
위에서 설명한 단계를 따르면 MultipleLookupField
컨트롤을 SharePoint 사이트에 성공적으로 통합할 수 있습니다. 이를 통해 서로 다른 목록에서 관련 항목을 효율적으로 관리할 수 있으며, 전체적인 SharePoint 경험이 향상됩니다. 약간의 연습과 세밀한 조정을 통해 이러한 기본 원칙을 특정 요구에 맞는 강력한 솔루션으로 발전시킬 수 있습니다.
질문이 있거나 SharePoint에서 MultipleLookupField
컨트롤을 사용한 경험을 공유하고 싶다면 언제든지 연락해 주세요!