I 페이지 (학부모 UC)에 의해로드 된 UserControl을에 다음과 같은 구조를 가지고 :자바 스크립트 함수가 호출되지 않습니다 - ASP.NET 및 UpdatePanel
<UpdatePanel>
<UpdatePanel>
.. In the codebehind, it loads a Child user control at runtime
</UpdatePanel>
</UpdatePanel>
UC는 OnPageLoad 스크립트를 등록이 있습니다.
ScriptManager.RegisterStartupScript(this, typeof(Page), "Load_" + this.ClientID, base.GetRegisterScript(this.ClientID), true);
JS 기능은 비동기 포스트 백에서 실행되지 않습니다. 내가 UpdatePanels를 제거 할 경우, 예상대로 작동
편집 : 사용 this.GetType() 대신에 대해서 typeof (페이지)하지만
편집 다시 행운의 :
매트 - 나는 시도 typeof (Page)를 UC 이름으로 대체하십시오. 다음은 업데이트 된 행입니다.
ScriptManager.RegisterStartupScript(this, typeof(TemplateAreaTypeOne), "Load_" + this.ClientID, "...JS function here,,", true);
명확하게하기 위해 페이지는 이러한 UpdatePanels가있는 상위 UC를로드합니다. ParentUC 다음 ChildUC을로드하고 ScriptManager.RegisterStartuScript은 TEH ChildUC
편집에 사용되는
마크 업이 있습니다
<script type="text/javascript">
//<![CDATA[
; findControl('PageLoadedHiddenTxtBox').value ='Set';OnLoadBegin('ctl00_WorkSpaceContent_ctlUnion1_ctlUnion1Child','Edit');OnLoadEnd('ctl00_WorkSpaceContent_ctlUnion1_ctlUnion1Child','Edit');
document.getElementById('ctl00_WorkSpaceContent_informationSummary').dispose = function() {
Array.remove(Page_ValidationSummaries, document.getElementById('ctl00_WorkSpaceContent_informationSummary'));
}
//]]>
</script>
주 호출되는 함수는 것을 가지고 OnLoadBegin 및 OnLoadEnd
편집이 다시
사용 일을 알았어요 HTML로 추가되었습니다 :ScriptManager.RegisterStartupScript(this.Page, typeof(Page),....)
페이지에 대한 참조를 사용할 때 왜 작동하는지 잘 모르겠습니다.
- 페이지에 여러 컨트롤이 있으면 작동합니까?
- 페이지에 대한 참조를 사용하면 왜 작동합니까?
당신이 당신의 업데이트 패널의 전체 코드를 추가 할 수를 사용 해달라고하지 제어를 대상으로 할 필요가? – RSolberg
이 유형이 아닌 유형을 제어해야 할 필요가 있습니다. 목표로하는 유형이 무엇인지 상관없이 시작 스크립트에 등록 된 유형이 필요합니다. 따라서 MyControl 컨트롤을로드하는 경우 typesc (MyControl) startupscript는 무엇을 알아야합니다 대상이 부분적인 포스트 백 – Matt
나는 codebehind에서 컨트롤을 추가하기 때문에 여기에 다른 문제가있을 수 있다고 생각합니다. 메인 마크 업이 구문 분석 된 후 scriptmanager가 스크립트를 등록하므로 <% %>이 (가)이 유형의 대체물을 사용할 수 없습니다. 그런데 ID는 먼저 – Matt