FileUpload 컨트롤이 사용자 정의 목록 EditForm의 현재 목록 항목에 바인딩되는 이유는 무엇입니까?

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/37529

문제

나는 목록에 대한 사용자 정의 편집 양식을 작성했는데, 이는 첨부 파일과 같은 특정 기본 기능이 기본 양식의 일부였기 때문에 손실된다는 의미입니다.양식을 구현한 방법은 ASP.NET 및 C# 코드를 사용하여 사용자 지정 시각적 웹 파트를 작성한 다음 배포 중에 EditForm.aspx 페이지에서 기존 편집 웹 파트를 숨긴 다음 여기에 웹 파트를 추가하는 것입니다.

제가 양식을 개발한 방식은 제 양식이 실제로 SharePoint에 대해 아무것도 모르고 데이터 개체를 datamanager 개체에 전달한 다음 해당 데이터를 SharePoint에 쓰는 문제를 적절하게 분리하는 것입니다.

제가 작성한 첨부파일 양식에 문제가 있습니다.내가 찾은 것은 SPContext.Current.ListItem.Attachments 즉시 파일을 포함합니다. FileUpload 포스트백 시 제어.이를 위해 코드를 작성할 필요가 없었습니다. 컨트롤에서 파일이 선택되어 있는 동안 포스트백을 트리거하기만 하면 됩니다.

대부분의 경우 목록 항목의 해당 인스턴스를 실제로 업데이트하지 않기 때문에 이런 일이 발생하고 모든 것이 잘 작동한다는 사실을 무시할 수 있습니다.그러나 동일한 이름의 첨부 파일이 이미 존재하는 파일을 업로드하는 등 일부 극단적인 경우에는 코드를 건드리지도 않은 채 양식이 폭발합니다.

나는 또한 AttachmentsControl 에서 SPContext.Current.FormContext.FieldControlCollection 매 순간마다 이것을 제거합니다. Page_Init UserControl 이벤트는 문제에 전혀 도움이 되지 않습니다.

목록 항목의 컨텍스트 내에서 내 양식을 원하는 이유는 기본 도구 모음/리본/컨텍스트 메뉴 등이 모두 포함되도록 하기 때문입니다.여전히 양식에 올바르게 연결됩니다.편집 양식에서 내 웹 파트가 있는 컨텍스트 외부 페이지로 리디렉션할 수 있지만 이는 해킹적이고 불필요한 것 같습니다(잘못된 코딩은 말할 것도 없고).

이 동작이 발생하는 이유와 이를 해결하는 방법에 대해 아는 사람이 있습니까?이와 같이 자체 용도로 컨트롤을 자동으로 가로채는 목록 형식의 디자인은 매우 나쁜 것 같습니다.SharePoint에는 자체 제어 기능이 있어야 하고 ASP.NET 제어 기능은 그대로 두어야 한다고 생각하지만 그렇지 않은 것 같습니다.

도움이 되었습니까?

해결책

동일한 이름의 첨부 파일이 여러 번 추가된 경우 표준 목록 양식에서.항목이 저장되면 양식에서 첨부 파일 중 하나가 여러 번 추가되어 항목을 추가할 수 없다는 예외가 발생합니다.

귀하의 경우 이 예외를 재정의하면 목록 항목을 저장하려고 할 때 첨부 파일을 사용할 수 없게 됩니다.이 동작을 방지하려면 첨부 파일이 여러 번 추가되었는지 수동으로 확인해야 합니다. 그렇지 않으면 항상 실패하게 됩니다.

기본 NewForm 웹 파트를 숨기는 대신 제거해야 합니다.그러면 예외가 발생하지 않으며 첨부 파일을 얻을 수 있습니다.

다른 팁

itemAdding 이벤트에 이벤트 핸들러를 연결하면 오류 조건에서 이벤트가 실행됩니까?이를 사용하여 일부 사용자 지정 코드를 실행하여 이벤트를 처리하거나 시스템 시스템 오류 메시지를 억제하고 더 나은 메시지를 제공할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top