데이터베이스에서받은 정보를 기반으로 주로 동적으로 생성되는 ASP.NET Webforms 페이지가 있습니다. 컨트롤은 UpdatePanel에 주입됩니다. 하나의 컨트롤에는 사용자가 컨트롤 내의 버튼을 클릭 할 때 실행되는 javascript 함수가 포함되어 있습니다. 이 컨트롤은 테스트 페이지에서 완벽하게 작동하지만이 동적으로 생성 된 페이지에서 사용할 때 버튼을 클릭하면 브라우저를 통한 페이지 소스 검사에서 "정의되지 않음"이라는 JS 콘솔 오류가 반환됩니다. 컨트롤이 페이지에 삽입 된 후에 크롬 개발자 도구 콘솔을 통해 함수를 실행하려고하면 동일한 오류가 발생합니다. 함수를 실행할 수있게하려면 어떻게해야합니까? 높은 수준의/의사에서동적 업데이트 된 사용자 정의 컨트롤 내부의 Javascript 함수가 정의되지 않았습니다.
IT는 다음과 같습니다
<Page>
...
<DynamicWizardControl>
<UpdatePanel>
<!--dyanamically injected stuff-->
<WizardDocumentSubmissionControl>
<DocumentSubmissionControl ID="Attachments" runat="server">
<asp:Textbox ID='txtFile' runat='server'></asp:Textbox>
<asp:Button ID='btnAdd' runat='server' Text='Add File' />
<script>
function submitFile<%=btnAdd.ClientID%>() {
alert($('#<%=txtFile.ClientID%>').val());
}
</script>
</DocumentSubmissionControl>
</WizardDocumentSubmissionControl>
<!--End Dynamically Injected Stuff-->
</UpdatePanel>
</DynamicWizardControl>
</Page>
코드 뒤에 WizardDocumentSubmissionControl
Page_Load
Attachments.JSSubmitButton.OnClientClick = Attachments.SubmitFileJSFunctionName
코드 뒤에 DocumentSubmissionControl
Public ReadOnly Property SubmitFileJSFunctionName As String
Get
Return "submitFile" & btnAdd.ClientID
End Get
End Property
Public ReadOnly Property JSSubmitButton As Button
Get
Return btnAddJS
End Get
End Property