0

我在 ASP.NET 中使用一个自定义控件来为我处理文件上传。该控件在代码隐藏中有一个处理程序,使用如下所示:

Protected Sub UploadFileComplete(ByVal sender As Object, ByVal e As UploadControl.FileUploadCompleteEventArgs) Handles UploadControl.FileUploadComplete

在那个 sub 中,我发回服务器并在数据库上做一些工作,但是当我回来时,我希望 JavaScript 在那个时候注册。

但是,当我使用Page.ClientScript.RegisterClientScriptBlockor时ScriptManager.RegisterClientScriptBlock,脚本不会加载到页面上。我需要这个 JavaScript 来运行和更新页面,并关闭上传对话框窗口。我认为这是因为页面已经加载。

有没有人对如何做到这一点有任何好主意?

4

1 回答 1

0

好吧,原来是这样的……

在服务器端(代码隐藏),在UploadFileComplete()sub 中,您可以EventArgs使用方法访问该变量e.CallbackData = [WHATEVER]

然后在你的javascript中,你使用这个内置的客户端函数:

function UploadComplete(args){
    alert(args.callbackData);
}

args.callbackData变量包含您通过服务器端输入的任何内容。我觉得很光滑!但很难弄清楚,因为他们没有很好地记录它。

这样,您不需要添加自己的RegisterClientScriptBlock方法,因为您可以使用 JavaScript 的内置方法将任何您想要的东西传递给 JavaScript。

于 2009-06-11T22:45:23.860 回答