首页 文章

ASP.NET AsyncFileUpload RegisterClientScriptBlock无效

提问于
浏览
2

我在使用ScriptManager的RegisterClientScriptBlock时遇到问题 .

我有一个AsyncFileUpload,我想在上传后动态预览上传的图像 .

UploadedComplete连接在Page_Init中,这是服务器端的UloadedComplete块代码

void fileUpload_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
    string csb = string.Empty; 
    string tempfolder = "picserver/posts/temp/" + Session["Username"] + "_" + DateTime.Today.ToString("yyyy_MM_d") + ".jpg";
    string newfile = Server.MapPath(tempfolder);

    fileUpload.SaveAs(newfile);

    Byte[] f = File.ReadAllBytes(newfile);
    Imaging i = new Imaging();
    i.ResizeImageFile(newfile, newfile, 64);

    csb = "$(\"" + postImagePreview.ClientID + "\").innerHTML = '<img src=\"" + tempfolder + "\" alt=\"\" />'";
    System.Diagnostics.Debug.WriteLine("CSB: " + csb);
    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "preview", csb, true);
}

这是html

<asp:Label ID="postImagePreview" runat="server" />
Upload a preview of your advertisement. 
<asp:AsyncFileUpload ID="fileUpload" runat="server"
    UploaderStyle="Traditional" UploadingBackColor="#CCFFFF" ThrobberID="myThrobber" />
    <asp:Label runat="server" ID="myThrobber" style="display:none;" ></asp:Label>

这是我的ScriptBlock

csb = "$(\"" + postImagePreview.ClientID + "\").innerHTML = '<img src=\"" + tempfolder + "\" alt=\"\" />'";
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "preview", csb, true);

并且它不起作用..即使我把“警告('你好');”在脚本参数中 . 仍然无法正常工作 .

你们有什么想法吗?

1 回答

  • 1

    这是由当前版本的AsyncFileUpload控件中的错误引起的 . 基本上它清除内容,写入控件,然后结束请求 . 这可以防止脚本块呈现 . 更多细节和解决方法可以在AJAX Control Toolkit上看到bug tracker

相关问题