ファイルをアップロードするためのユーザー コントロールでは、クライアント側 (funClientUploadComplete、funClientUploadError) とサーバー側のイベント (uplFile1_UploadedComplete) の両方が起動されません。いくつかのデバッグの後、クライアント側のイベント関数が「未定義」であることがわかりました。これらは、以下の HTML で明確に定義されています。なぜ彼らはまだ「未定義」なのですか?それらをどのように定義/バインドできますか? これが、サーバー側のイベント関数が呼び出されない理由でもあると思います。以下のコードを参照してください。あなたの応答に感謝します。
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<script type="text/javascript">
function funClientUploadComplete() {
alert('fdj-1'); // alert box does not show
}
function funClientUploadError() {
alert('fdj-2'); // alert box does not show
}
</script>
<div style="float: left;">
<asp:GridView ID="grdUploadControls" runat="server" AutoGenerateColumns="False" OnRowDataBound="grdUploadControls_RowDataBound" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:AsyncFileUpload ID="uplFile1" runat="server" OnUploadedComplete="uplFile1_UploadedComplete" OnClientUploadComplete="funClientUploadComplete"
OnClientUploadError="funClientUploadError" UploaderStyle="Modern" ClientIDMode="AutoID" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
サーバー側イベントのコード ビハインド: (ブレークポイントにヒットしない)
protected void uplFile1_UploadedComplete(object sender, AsyncFileUploadEventArgs e)
{
// Typecast the source of this event to an AsynFileUpload
AsyncFileUpload afux = (AsyncFileUpload)sender;
.....
.....
}
ご覧いただきありがとうございます。