나는이 문제를 미리 제기했습니다. here. 나는 다시 같은 유형의 문제에 직면하고있다. 일부 비즈니스 개체의 정보를 표시하는 사용자 정의 컨트롤이 있습니다. 이미 두 페이지에서 사용하고 있습니다. 두 페이지 모두에서 사용자 정의 컨트롤 (주로 asp 레이블)을 객체의 속성에 바인드하는 비즈니스 객체가있는 메소드를 호출합니다. aspx 페이지의 LoadComplete 메서드에서이 메서드를 호출합니다.UserControl은 한 페이지에서 작동하지만 다른 페이지에서는 작동하지 않습니다.
protected void Page_LoadComplete(object sender, EventArgs e)
{
control.LoadData(bussinessObject);
}
두 페이지 모두에서 정상적으로 작동합니다. 이제 같은 컨트롤을 사용하는 세 번째 페이지가 생겼습니다. 지금은이 새 페이지에서 LoadData 내가 NullReference에게 예외를 받고 있어요 호출 할 때 :
는Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information
about the error and where it originated in the code.
Exception Details: System.NullReferenceException: Object reference not set
to an instance of an object.
Source Error:
Line 91: lblOrgName.Text = obj.Name;
편집 :! lblOrgName이 NULL :(제발 도와주세요
는 편집 2 : 나는 통해 강화 코드를 포함하는 페이지의 페이지로드 후 Masterpage의 Page_Load가 호출 된 후 문제 컨트롤의 페이지로드가 호출됩니다.이 페이지로드 기능 중 닫는 중괄호 ({})에서 중지 직접 실행 창에 lblOrgName을 입력하면 null이 표시됩니다. :(
그런 다음 사용자 정의 컨트롤이 포함 된 페이지의 LoadComplete에서 컨트롤의 이름을 직접 창에 입력하고 입력했습니다. 그것은 모든 레이블과 그 안에있는 다른 컨트롤을 null로 표시합니다.
편집 3 : 제안
나는 답을 Stendhal하여 UserControl을 보호 생성자를 넣어했습니다
Compiler Error Message: CS0122: 'Controls.OrgInfo.OrgInfo()' is inaccessible
due to its protection level.
:
protected OrgInfo(){ }
지금이 오류를 받고 있어요 프로젝트의 루트 디렉토리에있는 aspx 페이지와 OrgInfo 컨트롤은 Controls 폴더에 있습니다.
편집 4 : 나는 페이지로드 방법이 아니라 Controls 컬렉션의 수 아아 모든 컨트롤 (주로 라벨)를 만들려고
은 0 (영)입니다!
은 obj null 또는 lblOrgName입니까? – shahkalpesh