사용자가 편집 할 수없는 SharePoint 목록 항목의 정보를 변경해야하는 경우가 있습니다 (예 : 편집 번호가없는 경우) (예 : 기록 번호) .표시 양식의 URL을 사용하여 SharePoint 목록 항목 찾기
관리자가 서버에서 실행하고 요청한 변경을 수행하는 작은 Windows GUI 응용 프로그램을 만들기로 결정했습니다. 그러나, 간단한 시나리오는 내가 발견 SPListItem
의 인스턴스를 얻을 수 있었다 :
- 관리자가 지정한 URL을 사용하여,
SPSite
ojbect가 만들어 루트 사이트 - 의 URL을 입력 :
SPSite oSite=new SPSite(this.txtURL.text);
- 관리 드롭 다운 상자
oWeb.Lists
에서 모든리스트 타이틀로 채워진다
SPWeb oWeb = oSite.OpenWeb(this.txtWebUrl.text);
같은SPWeb
객체 생성- reqired 웹의 상대적 URL을 입력
- 관리자가 목록 상자에서 목록을 선택하고 요청한 항목의 ID를 입력합니다.
- 필요한
SPListItem
이 매우 긴 경로와 관리자가 클릭을 기다리고, 타이핑을 할 수없는 등의 작업을 수행하지oWeb.Lists[this.lstAllLists.selectedValue].GetItemById(this.txtItemId.value);
로 발견된다.
(웹 브라우저 또는 다른 사람의 이메일에서) listitem의 표시 양식 URL을 복사하여 업데이트 도구에 붙여 넣은 다음 "찾기"를 클릭하십시오.
이 작업을 수행하는 방법에 대한 힌트가 필요합니다.
대개 의 형식이기 때문에 정규 표현식을 사용하여 URL을 구문 분석 할 수 있지만 변형이 존재합니다. 예를 들어 http://[server]/[DocumentLibrary]/Forms/RenamedDispForm.aspx?ID=[1234]
은 첫 번째 예와 완전히 다른 구조를가집니다.
그래서 질문은 - URL로 SPListItem
을 쉽게 찾을 수있는 방법이 있습니까? URL에서 SPContext
을 복원하는 것이 좋습니다.
편집 : 그냥 그것에게 훨씬 긴 URL을 전달하여 올바른 SPSite
객체를 생성하는 것이 가능하다는 것을 발견 :
Dim oSite as New SPSite("http://server/sites/site/Lists/test/DispForm.aspx?ID=136")
감사합니다, 매우 도움이! 이 URL을 사용하여 URL로 목록을 찾습니다. 이 함수에 추가 할 것은 현재 개체가 아니라면 인스턴스화하는 SPSite 또는 SPWeb 개체를 모두 처리해야합니다. (http://msdn.microsoft.com/en-us/library/aa973248.aspx) – brentlightsey