データベースから受け取った情報に基づいて主に動的に生成されるASP.NET Webフォームページがあります。コントロールはUpdatePanelに注入されます。 1つのコントロールには、ユーザーがコントロール内のボタンをクリックしたときに実行されるjavascript関数が含まれていることを除けば、ほとんどすべてが機能しています。このコントロールはテストページでは完全に機能しますが、この動的に作成されたページ内で使用すると、ブラウザを介したページソースインスペクションが存在することを示すにもかかわらず、JSコンソールエラーが返されます。そのコントロールがページに挿入された後、クロム開発者用ツールコンソールから関数を実行しようとすると、同じエラーが発生します。どのようにして機能を実行可能にしますか?それは以下のように見えるハイレベル/擬似コードで動的に追加された内部の更新コントロールパネル内のユーザーコントロール内のJavaScript関数
:
<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