2010-08-03 3 views
0

SharePoint Designer를 통해 배포 된 사용자 지정 페이지에서 SPGridView를 사용하고 있습니다. 2007 년 모든 것이 잘 작동했지만 2010 년에는 페이징이 작동하지 않고 다음 질문으로 넘어 가려고 시도하면 오류가 발생합니다.2010 년 MOSS 2007 용으로 컴파일 된 코드 사용

2007 어셈블리 용으로 컴파일 된 사용자 지정 코드를 사용하는 경우 SharePoint는 2007 컨트롤 (SPGridView)을 사용합니까? 아니면 리디렉션을 수행하고 2010 컨트롤을 사용하려고합니까? 내가 그 문제를 일으킬 수 있다고 생각할 수있는 유일한 설명입니다.

+0

더 자세히 살펴보면 내 코드가 버전 14 컨트롤을 사용하도록 리디렉션되고 있음을 확신합니다. 이 특별한 경우에 이것을 무시할 수 있습니까? – sparkymark75

답변

0

문제를 일으키는 DataKeyNames 속성입니다. 그 페이징을 제거했을 때 예상대로 작동했습니다.

0

SPGridView는 Microsoft.SharePoint.dll 어셈블리 (Microsoft.SharePoint.WebControls 네임 스페이스)에 포함되어 있습니다.

어떤 버전의 Microsoft.SharePoint.dll이 서버에 설치되어 있습니까? 2010이 설치된 서버를 사용하는 경우 2010 년에 2007 용으로 만들어진 사용자 지정 내용을 다시 배포하는 방법에 대해서는 MSDN post을 읽어야합니다.

다른 버전의 SharePoint를 사용하지 않는 것이 좋습니다. 그냥 컨트롤에 대한 DLL을, 당신은 엉망으로 끝날 것입니다. 필자가 링크 된 기사를 사용하여 2010에 대한 코드를 작성하면 페이징이 잘 작동합니다.

+0

서버가 SharePoint 2010으로 업그레이드되었습니다. 프로젝트를 버전 14 어셈블리 용으로 다시 컴파일하고 다시 배포했지만 동일한 문제가 여전히 존재합니다. – sparkymark75

+0

그러면 코드가 2010 SPGridView를 사용해야하며 실제로 2007 SPGridView를 사용할 수 없습니다. 개발 환경에서 SPGridView가 작동합니까? 어떤 종류의 오류가 있습니까? 자바 스크립트 오류 또는 예외 또는 다른 뭔가? –

+0

오류는 다음과 같습니다. System.InvalidCastException : 'System.Int32'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다. System.Web.UI.Page의 Microsoft.SharePoint.WebControls.SPGridViewPager.RaisePostBackEvent (String eventArgument)의 Microsoft.SharePoint.WebControls.SPGridView.set_PageIndex (Int32 값) : Microsoft.SharePoint.WebControls.SPGridViewPager.OnClickNext (EventArgs args) .RaisePostBackEvent System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint – sparkymark75