2

我在使用 ScriptManager 的 RegisterClientScriptBlock 时遇到问题,它不起作用。

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

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

无效文件上传_上传完成(对象发送者,AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
    字符串 csb = string.Empty;
    string tempfolder = "picserver/posts/temp/" + Session["Username"] + "_" + DateTime.Today.ToString("yyyy_MM_d") + ".jpg";
    字符串 newfile = Server.MapPath(tempfolder);

    文件上传。另存为(新文件);

    字节[] f = File.ReadAllBytes(newfile);
    成像 i = 新成像();
    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" />
上传您的广告预览。
<asp:AsyncFileUpload ID="fileUpload" runat="server" UploaderStyle="传统" UploadingBackColor="#CCFFFF" ThrobberID="myThrobber" /> <asp:Label runat="server" ID="myThrobber" style="display:none;" ></asp:标签>

这是我的脚本块

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

它不起作用..即使我输入“alert('hello');” 在脚本参数中。还是不行。

你们知道为什么吗?

4

1 回答 1

1

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

于 2010-11-10T23:43:24.210 回答