利用asp.net输出js我们大多数都会直接使用Respone.Write()然后根js格式的代码,再在页面调用时我们直接这样是完全可以实现的,下面我来给大家介绍另一种方法

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

Respone.Write(“hello word!”);

但是,当你查看客户端源码时,你会发现,输出的内容呈现在源码的最前端,显然它破坏了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 =;
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");
}

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

  1. ASP.NET后台输出js大全,页面顶部、form表单中前面与后面、和UpdatePanel(ScriptManager、AJAX)输出JS

    Response.Write 与   Page.ClientScript.RegisterStartupScript 与 Page.ClientScript.RegisterClientScriptB ...

  2. ASP.NET后台输出js

    一.使用RegisterClientScriptBlock输出js代码块 StringBuilder sb = new StringBuilder(); sb.Append("<inp ...

  3. .NET提供了三种后台输出js的方式:

    .NET提供了三种后台输出js的方式: 首先创建 js文件testjs.js {    Page.ClientScript.RegisterClientScriptInclude("keys ...

  4. ASP.NET后台执行JS代码

    1. 用Response.Write方法 代码如下:Response.Write("<script type='text/javascript'>alert("XXX& ...

  5. asp.net后台对前台脚本的调用

    后台像前台输出要执行的脚本 Response.Write("<script>alert('内容')</script>"); asp.net后台调用前台js脚 ...

  6. 关于Cocos Creator用js脚本代码播放骨骼动画的步骤和注意事项

    步骤: 1.用cc.find()方法找到相应的骨骼动画节点,并把这个对象赋值给一个var出来的新对象. 具体代码:var spineboy_anim = cc.find("UI_Root/a ...

  7. asp.net后台向前端输出js脚本的三种方法

    //这个方法最快,因为它会输出到html标签之前 Response.Write("<script type='text/javascript'>alert('这个最快')< ...

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

    1.按钮前后台事件 <asp:Button ID="Button1" runat="server" OnClick="Button1_Click ...

  9. ASP.NET中后台注册js脚本攻略(转)

    用Page.ClientScript.RegisterClientScriptBlock 和Page.ClientScript.RegisterStartupScript:区别:   1.使用Page ...

随机推荐

  1. windows下html2jade批量转换

    将项目中的代码转换为jade,使用html2jade批量转换 @echo off SETLOCAL ENABLEDELAYEDEXPANSION for %%i in (*.html) do ( ht ...

  2. 3. EM算法-高斯混合模型GMM

    1. EM算法-数学基础 2. EM算法-原理详解 3. EM算法-高斯混合模型GMM 4. EM算法-高斯混合模型GMM详细代码实现 5. EM算法-高斯混合模型GMM+Lasso 1. 前言 GM ...

  3. Beef安装与简单使用

    安装 Debian / Ubuntu 安装依赖 sudo apt-get update sudo apt-get install curl git curl -sSL https://raw.gith ...

  4. ResponderChain note

    http://ww3.sinaimg.cn/large/6b288462gw1evl4h40tfxj20sg0lc77k.jpg

  5. <魔鬼投资学>读书笔记

    书在这里 太多的投资者沉溺于结果,但却忽略了过程 在任何一个存在不确定系的领域中,比如投资.管理球队或是赌马,最优秀的长期成功者都会更重视过程,而不是结果 投资过程的目的:认识一家公司股票现在价格与未 ...

  6. led子系统

    最简单的led驱动就是从端口输出0或1来关闭或点亮灯.而我们这里讲的led子系统,主要是对led事件进行了分装和优化,这里我们主要讲的是可 以实现跨平台的led驱动.不管你是使用三星的平台,还是Atm ...

  7. Android——黑名单管理(二)

    说明:多加一点完善 1.在操作类 DAO 将连接数据库也放到了构造方法中(错误),加删除全部的方法 2.主界面增加了姓名一栏,用layout文件将对话框分离出来 3.删除加确认提示 4.加删除全部按钮 ...

  8. 使用 Easy Sysprep v4(ES4) 封装 Windows 7教程

      总:1.装系统ctrl+shift+f3(administrator)2.备份系统,快速备份(pe下)3.安装补丁,软件(系统下),不装安全类软件,需激活的软件重装后还要激活4.系统备份(pe下叠 ...

  9. maven配置阿里云仓库

    在mirrors的节点中添加: <mirror> <!--This sends everything else to /public --> <id>nexus-a ...

  10. Redis源码研究—基础知识

    1. Redis 是什么 Redis是一个开源的使用ANSI C语言编写的基于内存的key/value存储系统,与memcache类似,但它支持的value类型更多,包括:字符串(string).链表 ...