2012-06-18 3 views
1

현재 ContentPlaceHolder 외부의 ContentPlaceHolder에서 객체를 참조하려고 할 때 자바 스크립트 오류가 발생합니다 (둘 다 동일한 하위 페이지에 있음).마스터 페이지를 참조 할 때 javascript 오류가 발생했습니다. ContentPlaceHolder

오류 : 마이크로 소프트의 JScript 런타임 오류 : 속성 '값'의 값을 설정할 수 없습니다 : 개체가 null이거나 정의되지

오류가 발생하는 스크립트 행은 다음과 같습니다

<input type="submit" name="Master$cphMainContent$btnUnregister" value="Proceed" onclick="document.getElementById('Master_cphHeadContent_TimeAlert').value = GetSeconds(); return ValidateProvider(1);" id="cphMainContent_btnUnregister" class="netButton" /> 

TimeAlertcphHeadContent ContentPlaceHodler의 숨겨진 개체입니다.

일반적으로 개체 (TimeAlert)가 호출 될 때 표시되지 않습니다. 그러나 이번에는 같은 페이지이므로 개체가 null이거나 정의되지 않은 이유를 알 수 없습니다.

이 오류를 해결하는 방법에 대한 제안 사항이 있으십니까?

+0

당신이 말하는 컨트롤이 * id *를 정확히 지정 했습니까? 자바 스크립트를 사용할 때 스크립트에서 하드 코딩하지 말고 * ClientID * 속성을 사용하여 컨트롤을 참조하십시오. 자세한 내용은 http://msdn.microsoft.com/ko-kr/library/system.web.ui.control.clientid.aspx를 참조하십시오. 이렇게하려면 여기에 설명 된 ** <% = ** 및 ** %> **을 사용할 수 있습니다. http://stackoverflow.com/questions/7889035/inline-code-in-markup-page-in -asp-net-webforms. –

+0

이것은 작동하도록되어있는 기존 코드입니다 (실행하고있을 때 작동하지 않는 것을 제외하고) – DotNetRookie

+0

자바 스크립트에서 사용할 수있는 * id *는 컨트롤이 페이지의 구조에 어디에 종속되어있을 수 있습니다. 컨트롤의 * id *가 하드 코드되고 페이지 구조에서 무언가가 변경되면 컨트롤에 다른 * id *가 추가되어 코드가 작동을 멈출 수 있습니다. 브라우저의 오픈 페이지 소스에서이 * id *로 제어 할 수 있는지 확인하십시오. 그것이 없으면 * id *를 유효한 값으로 업데이트 할 수 있지만 대신 ** Control.ClientID **를 사용하면 더 나은 해결책이 될 수 있습니다. –

답변

1

이벤트 처리기에서 구성 요소 ID를 어떻게 설정합니까? 이벤트 핸들러에서

봐 :

document.getElementById(&#39;Master_cphHeadContent_TimeAlert&#39;).value = GetSeconds(); return ValidateProvider(1); 

주 & # 39 여기하는 HTML 코드 문자입니다 proprably 문제입니다. 시도해보십시오 :

+0

사실 내 부분에 오타가있었습니다. 나는 (자바 스크립트 오류 msgbox를 얻을 때) 디버그 모드에서 코드를 복사하고 붙여 넣었다. 실제 코드는 아포스트로피가 아니라 HTML 인코딩 된 문자입니다. – DotNetRookie

관련 문제