2012-08-23 6 views
2

그리드 데이터 바인딩에 ASP:ObjectDataSource을 사용합니다.Asp.net objectdatasource TypeName 속성 오류

제 문제는이 코드를 실행하면 오류가 발생합니다.

The type specified in the TypeName property of 
ObjectDataSource 'odsListing' could not be found. 

<asp:ObjectDataSource ID="odsListing" 
runat = "server" 
SelectMethod = "MethodNameOfCodeBehindClass" 
TypeName = "FolderName_CodeBehindClassName" ></asp:ObjectDataSource> 

오류 메시지가 그래서 코드 숨김 사이트에 내 코드를 이동합니다.

#region ObjectDataSource for Grid Binding 
    Type type = typeof(FolderName_CodeBehindClassName); 
    string assemblyQualifiedName = type.AssemblyQualifiedName; 

    odsListing.TypeName = assemblyQualifiedName; 
    odsListing.SelectMethod = "ListingDatabind"; 
    #endregion 

이제 모든 사항이 정상입니다. 그것은 일이다. 하지만 내 문제에 대한 실제 해결책을 알고 싶습니다. 왜 오류가 발생합니까?

실제로 디자인 레이어에서 코드를 작성할 수 있으면 코드 숨김 레이어로 코드를 이동하고 싶지 않습니다.

모든 제안을 부탁드립니다.

답변

3

문제는 전체 형식 이름 대신 짧은 형식 이름을 사용하고 있다는 것입니다.

FolderName_CodeBehindClassNameThe.NameSpace.YouHaveYourTypeIn.FolderName_CodeBehindClassName, Name.Of.Your.Assembly으로 바꿉니다.

+0

어셈블리가없고 심지어 네임 스페이스가없는 ASP.NET 웹 사이트를 사용하고 있습니다. 어떻게 내가 그걸 할 수 있니? –

+0

조립품을 생략하십시오. 그러나, 나는 네 클래스가 네임 스페이스에 있다고 확신한다. VB에서 문제는 코드에 네임 스페이스가 없더라도 기본 네임 스페이스가 있다는 것입니다. 프로젝트 속성을보고 "기본 네임 스페이스"라는 텍스트 상자를 찾으십시오. –

+0

비슷한 질문 : http://stackoverflow.com/q/15166016/153923 – jp2code