我在ASP.NET中使用自定义控件来处理文件上传。控件在代码隐藏中有一个处理程序,使用类似这样的东西:
Protected Sub UploadFileComplete(ByVal sender As Object, ByVal e As UploadControl.FileUploadCompleteEventArgs) Handles UploadControl.FileUploadComplete
在该子目录中,我回发到服务器并对数据库做了一些工作,但是当我回来时,我希望JavaScript在那时注册。
但是,当我使用Page.ClientScript.RegisterClientScriptBlock
或ScriptManager.RegisterClientScriptBlock
时,脚本不会加载到页面上。我需要这个JavaScript来运行和更新页面,并关闭上传对话框窗口。我认为是因为页面已经加载了。
有没有人对如何做到这一点有任何好的想法?
答案 0 :(得分:0)
好吧原来就是这样......
在服务器端(代码隐藏)的UploadFileComplete()
子域中,您可以使用EventArgs
方法访问该e.CallbackData = [WHATEVER]
变量。
然后在你的javascript中,你使用这个内置的客户端功能:
function UploadComplete(args){
alert(args.callbackData);
}
并且args.callbackData
变量包含您通过服务器端放入的任何内容。我觉得很漂亮!但很难弄清楚原因是他们没有很好地记录下来。
这样,您无需添加自己的RegisterClientScriptBlock
方法,因为您可以使用内置方法将任何内容传递给JavaScript。