AsyncFileUpload OnUploadedComplete未在DIV中触发

时间:2012-04-17 20:47:18

标签: c# asp.net ajaxcontroltoolkit asyncfileupload

我认为使用ajaxcontroltoolkit的AsyncFileUpload控件是一个非常基本的设置。基本上,如果我将它从div中取出,控件可以正常工作,但是当我将它放在div中时,它不再触发OnUploadedComplete服务器端事件。

如何翻转您想要更改的图像,单击“更新图像”并打开一个对话框(AsyncFileUpload控件所在的div),并允许您上传新图像。

<div id="dialog-message" style="display: none;" title="Upload a Headshot Photo">
    <p>Upload a headshot photo of this person. Your photo will be uploaded once you select and crop your photo.</p>

    <fieldset>
        <legend>Choose a photo to upload</legend>

        Acceptable formats: .jpeg, .jpg, .gif, and .png and should be at least 72 DPI and 221x221.
        **<ajax:AsyncFileUpload ID="asyncImageUpload" 
              ThrobberID="throbber" 
              OnClientUploadComplete="uploadComplete" 
              OnUploadedComplete="AsyncFileUpload_Complete" 
              runat="server" />**
        <img src="/images/ajax-loader.gif" id="throbber" runat="server" style="display: none;" align="absmiddle" alt="loading" />
    </fieldset>
</div>

上面是包含AsyncFileUpload控件的div。就像我说的,如果我把它移到div之外它就可以了。我已经尝试更改表单中的enctype,这就是它目前的样子:

<form id="form1" enctype="multipart/form-data" method="post" runat="server">

在尝试找到解决此问题的方法时,我尝试了所有可以找到的建议,但似乎都没有。这甚至不在更新面板中,所以我不确定为什么它不会触发。

我唯一能想到的是,它与div首先被隐藏有关,然后在用户点击链接后显示。我真的希望有人可以帮忙,因为我要把电脑扔到窗外哈哈。提前谢谢!

代码隐藏:

protected void AsyncFileUpload_Complete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
    System.Threading.Thread.Sleep(4000);

    if (this.asyncImageUpload.HasFile)
    {
        string path = MapPath("~/images/uploads/") + Path.GetFileName(e.filename);
        this.asyncImageUpload.SaveAs(path);
    }
}

0 个答案:

没有答案