asp.net 侧更新面板中的AsyncFileUploader

0vvn1miw  于 2023-06-07  发布在  .NET
关注(0)|答案(3)|浏览(175)

我使用 AJAX AsyncFileUploader更新面板内。但它不起作用。有谁能帮我想出一个变通的办法吗?
谢谢

w1jd8yoj

w1jd8yoj1#

你必须设置你的文件控制的这些事件。

OnClientUploadError="uploadError" OnClientUploadComplete="uploadComplete"
qvtsj1bj

qvtsj1bj2#

您必须定义客户端上载事件,并可以选择设置OnUploadedComplete服务器端事件:

<ajax:AsyncFileUpload ID="UploadResume" runat="server" Width="450px"
OnClientUploadError="UploadError"
OnClientUploadComplete="UploadComplete" 
OnUploadedComplete="OnUploadComplete"
UploaderStyle="Modern" 
UploadingBackColor="#CCFFFF"/>

客户端事件处理器(JavaScript)

function UploadError(sender, args) 
{
    var e = args.get_errorMessage();
    var fn = args.get_fileName();
}
function UploadComplete(sender, args) 
{
    var content_type = args.get_contentType();
    var size = args.get_length()/1000 + " Kbytes";
}

服务端事件处理器(C#)

protected void OnUploadComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
    if (UploadResume.HasFile)
    {
        // do something with uploaded file, e.g. save
        String path = MapPath("yourpath") + Path.GetFileName(e.FileName);
        UploadResume.SaveAs(path);
    }
    else
    {
        // error
    }
}

你不需要在这个例子中使用UpdatePanel,但是当它在一个里面的时候它会工作。

1tuwyuhd

1tuwyuhd3#

对于那些可能正在挣扎的人,我有一个类似的更新面板问题。即使我添加AsyncFileUpload1作为更新面板的回发触发器,它仍然无法工作。
我最终在更新面板外的主页上添加了一个额外的,完全未使用的AsyncFileUpload3,这使得更新面板内的AsyncFileUpload1可以正常工作。我不知道为什么这是工作,除了他们必须共享资源。
未使用的AsyncFileUpload3必须可见,因此我将其设置为禁用,宽度为0%。如果有人知道这是为什么我会更好奇。我在用VB编程

相关问题