asp.NET后台输出js脚本代码

我是我最初的想法以下是代码片段:

 代码如下 复制代码

Respone.Write(“hello word!”);    或输出JS    Respone.Write("");

但是,当你查看客户端源码时,你会发现,输出的内容呈现在源码的最前端,显然它破坏了HTML的格式,在某些情况下这是会影响到页面布局等效果的。

正确的输出方式应该是:

 代码如下 复制代码

this.ClientScript.RegisterStartupScript或this.ClientScript.RegisterClientScriptBlock.

this.ClientScript.RegisterStartupScript

是在Form开始的第一行注册脚本,后者则是在Form结尾处注册脚本。这样就不回破坏HTML得格式了,如:

 

以下是代码片段:

 代码如下 复制代码

this.ClientScript.RegisterStartupScript(this.GetType(), "scriptKey", "")    或    this.ClientScript.RegisterStartupScript(this.GetType(), "scriptKey", "alert('hello word!');",True)   this.ClientScript.RegisterClientScriptBlock也类似。    UpdatePanel

 

当你想在UpdatePanel内输出一段JS时,运用以上方法就会得不到预期的效果。那么请看一下示例。

有一个UpdatePanel的ID是upPn

以下是代码片段:

 代码如下 复制代码

 ScriptManager.RegisterClientScriptBlock(upPn,this.GetType(), "scriptKey", "alert('hello word!');",True)   

或    

ScriptManager.RegisterStartupScript(upPn,this.GetType(), "scriptKey", "alert('hello word!');",True)

这样的话,当UpdatePanel内容加载到客户端后,就会弹出“hello word!”对话框。

这样的话,从后台输出JS就更加方便了

还有一种办法,就是像生成xml一样直接生成js文件了,这样直接调用js文件,就可以了,实例

 代码如下 复制代码

protected override void Render(HtmlTextWriter writer)
    {

 

        int titleid =0;
        StringWriter html = new StringWriter();
        System.Web.UI.HtmlTextWriter tw = new System.Web.UI.HtmlTextWriter(html);
        base.Render(tw);
        StreamWriter sw;

 

    string dir = Server.MapPath("~/js/ask/");

 if (!Directory.Exists(dir))
        {
            Directory.CreateDirectory(dir);
        }

 

        string path = dir + "ask"+"_" + titleid + ".js";

 

         sw = new StreamWriter(path, false, System.Text.Encoding.UTF8);

 

         string newhtml = html.ToString().Replace(""", "").Replace("rn", "");
         string lasthtml = "document.write("" + newhtml + "")";

 

         sw.Write(lasthtml.ToString());
         sw.Close();
         tw.Close();

 }

JS文件调用乱码解决方法

1、 问题:后台字体倒显示?效果如下:

原因:由于Asp.net采用UTF-8编码,原先使用GB2312导致乱码。

解决方法:在Web.config中添加 以下代码段

 代码如下 复制代码

<system.web>

<globalization requestEncoding="utf-8" responseEncoding="utf-8" uiCulture="zh-CN" culture="zh-CN" fileEncoding="utf-8" />

</system.web>

在解决完后台乱码问题,接着出现前台乱码问题,详情问题2

2、 问题:在添加完以上节点后,系统前台页面出现以下乱码问题:

原因:由于添加了 fileEncoding="utf-8"该项目,造成导航无法显示

解决方法:删除该选项

3、 问题:由系统后台生成的JS文件,在前台的*.aspx的页面中调用时乱码,效果如下:

原因:JS采用的是GB2312编码,而*.aspx采用的UTF-8编码方式,解决思路,统一编码方式

解决方法:第一步:根据问题1解决方法操作,注:不要加 fileEncoding="utf-8"

第二步:在需要调用到JS的aspx页中加入 <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />

第三步:在页面加载事件中加入下句

 

 代码如下 复制代码
protected void Page_Load(object sender, EventArgs e)
    {
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
   }
时间: 2024-10-31 12:02:20

asp.NET后台输出js脚本代码的相关文章

asp.net后台如何输出js脚本使用什么方法可以实现

 asp.net后台如何输出js脚本,用page.ClientScript.RegisterStartupScript方式实现,实现示例如下,感兴趣的朋友不要错过 用page.ClientScript.RegisterStartupScript方式实现    代码为:  代码如下: /**//// <summary>  /// 弹出JavaScript小窗口  /// </summary>  /// <param name="js">窗口信息<

ASP.NET中常用输出JS脚本的类实例_实用技巧

本文实例讲述了ASP.NET中常用输出JS脚本的类,针对过去输出js脚本的类进行了一定的改进.在项目开发中非常具有实用价值.分享给大家供大家参考.具体如下: 很多时候在ASP.NET中我们经常需要输出一些JS脚本,比如弹出一个警告窗口,返回到历史页面等JS功能,我看到网上流传得比较广的是马先光写的一个JScript类,这个类基本将经常用到的JS脚本包含了,非常方便,唯一的不足是作者采用的Response.Write(string msg)的办法,这样造成输出的js脚本在<html></h

c#-.net使用asp:Literal后台输出a标签,后面总会多一个,求解

问题描述 .net使用asp:Literal后台输出a标签,后面总会多一个,求解 这是什么原因啊,直接用label.innerHtml也是同样的结果,求解求解 解决方案 将你pageload那一行注释,结果是什么,仔细检查下,看看是不是设置了2次.

Ajax中Response.Write输出js脚本出错的解决方案

Ajax中Response.Write输出js脚本出错的解决方案 Ajax 3.5是不是有改动.后来经过尝试将ScriptManager.RegisterStartupScript(updatePanel1, typeof(UpdatePanel), "aaa", "<script>alert('数据添加成功!')</script>",true);中最后的true变为ScriptManager.RegisterStartupScript(up

总结ASP.NET C#中经常用到的13个JS脚本代码_实用技巧

在C#开发过程中,免不了写一些JS,其实做后端开发的,本身不擅长写JS,干脆总结一下,方便自己也方便别人,分享给大家.呵呵~~ 1.按钮前后台事件 复制代码 代码如下: <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" OnClientClick="alert('客房端验证,阻止向服务器端提交');retu

后台注册JS脚本后 后台程序不执行

问题描述 因为使用了updatepanel,所以要后台在Button1_Click用ScriptManager注册JS脚本,JS脚本没问题了,但是后来发现,Button1_Click事件根本不会执行.额初学者,不知道描述清楚没有.前台:<asp:ScriptManagerID="ScriptManager1"runat="server"></asp:ScriptManager><asp:UpdatePanelID="Updat

一些很实用的JS脚本代码

简单介绍10个很常用的JS脚本,更多脚本特效就在js页面那里找找:http://js.alixixi.com/ 脚本1:进入主页以后自动播放声音 <embed src="pnm://10.13.31.90/~kayvin/mihunji.rm" hidden=true autostart=true loop=true> 脚本2:进入主页后自动最大话,省的去在自己单击了 <script> self.moveTo(0,0) self.resizeTo(screen.

asp.net后台如何输出js脚本使用什么方法可以实现_实用技巧

用page.ClientScript.RegisterStartupScript方式实现 代码为: 复制代码 代码如下: /**//// <summary> /// 弹出JavaScript小窗口 /// </summary> /// <param name="js">窗口信息</param> public static void Alert(string message, Page page) { #region string js =

几组实用的ASP程序和JS脚本代码

js|程序|脚本 ASP与Access数据库连接: <%@ language=VBscript%> <% dim conn,mdbfile mdbfile=server.mappath("数据库名称.mdb") set conn=server.createobject("adodb.connection") conn.open "driver={ microsoft access driver (*.mdb) };uid=admin;pw