Page.ClientScript和Response.Write的用法(c#)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Page.ClientScript和Response.Write的用法(c#)相关的知识,希望对你有一定的参考价值。
在asp。net中,这两个都能弹出对话框,但是用后者弹出对话框时会改变界面的布局,但是两者都是只能在页面上弹出对话框。
在单独的类中使用Response.Write语句,可以在前面添加HttpContext.Current,就能单独在类中使用,那想问下在单独的类中使用Page.ClientScript时 需要加什么语句不?我仙子啊在类中使用不了这个语句,谢谢
一般来说 Page 的实例应该存储在 HttpContext.Current.CurrentHandler,你可以试试
((Page)HttpContext.Current.CurrentHandler).ClientScript 参考技术A public static void Show(System.Web.UI.Page page, string msg)
page.ClientScript.RegisterScriptBlock(page.GetType(), "message", "<script>alert('" + msg + "');</script>");
调用Class1.Show(Page,"提示内容!"); 参考技术B Page.RegisterStartupScript("", "<script>alert('XXX')</script>"); 参考技术C 1楼方法 测试成功~~~不错
public static void TT()
((Page)HttpContext.Current.CurrentHandler).ClientScript.RegisterStartupScript(((Page)HttpContext.Current.CurrentHandler).GetType(), "script", "alert('msg')", true);
C#后台调用js方法无效果,未解决。
this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "", "<script>Ceshi();</script>", true);
这句代码与下面这段代码放一起,不管是插在哪里,这句代码都无效,无法调用js
注释掉
Page.Response.Clear();
Page.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(Path.GetFileName(filepath), System.Text.Encoding.UTF8));
Page.Response.AppendHeader("Content-Length", fiOutFile.Length.ToString());
就可以调用js,但是下面这段导出excel的代码就异常了。
求解。。。。
FileInfo fiOutFile = new FileInfo(filepath);
Page.Response.Clear();
Page.Response.ClearHeaders();
Page.Response.Buffer = false;
Page.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(Path.GetFileName(filepath), System.Text.Encoding.UTF8));
Page.Response.AppendHeader("Content-Length", fiOutFile.Length.ToString());
Page.Response.WriteFile(fiOutFile.FullName);
fiOutFile.Delete();
Page.Response.Flush();
Page.Response.End();
以上是关于Page.ClientScript和Response.Write的用法(c#)的主要内容,如果未能解决你的问题,请参考以下文章
Response.Write RegisterClientScriptBlock和RegisterStartupScript总结