Page.ClientScript和Response.Write的用法(c#)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Page.ClientScript和Response.Write的用法(c#)相关的知识,希望对你有一定的参考价值。

在asp。net中,这两个都能弹出对话框,但是用后者弹出对话框时会改变界面的布局,但是两者都是只能在页面上弹出对话框。
在单独的类中使用Response.Write语句,可以在前面添加HttpContext.Current,就能单独在类中使用,那想问下在单独的类中使用Page.ClientScript时 需要加什么语句不?我仙子啊在类中使用不了这个语句,谢谢

Page 是 Control 的一个属性,是 asp.net 在初始化 control 的时候给设置的
一般来说 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#)的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET跳转页面

后台调js方法

C#后台调用js方法无效果,未解决。

本地弹出页面

C# 代码 设置 前台 页面 JS提示

Response.Write RegisterClientScriptBlock和RegisterStartupScript总结