ASP.NET后台输出js脚本代码
利用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脚本代码的更多相关文章
- ASP.NET后台输出js大全,页面顶部、form表单中前面与后面、和UpdatePanel(ScriptManager、AJAX)输出JS
Response.Write 与 Page.ClientScript.RegisterStartupScript 与 Page.ClientScript.RegisterClientScriptB ...
- ASP.NET后台输出js
一.使用RegisterClientScriptBlock输出js代码块 StringBuilder sb = new StringBuilder(); sb.Append("<inp ...
- .NET提供了三种后台输出js的方式:
.NET提供了三种后台输出js的方式: 首先创建 js文件testjs.js { Page.ClientScript.RegisterClientScriptInclude("keys ...
- ASP.NET后台执行JS代码
1. 用Response.Write方法 代码如下:Response.Write("<script type='text/javascript'>alert("XXX& ...
- asp.net后台对前台脚本的调用
后台像前台输出要执行的脚本 Response.Write("<script>alert('内容')</script>"); asp.net后台调用前台js脚 ...
- 关于Cocos Creator用js脚本代码播放骨骼动画的步骤和注意事项
步骤: 1.用cc.find()方法找到相应的骨骼动画节点,并把这个对象赋值给一个var出来的新对象. 具体代码:var spineboy_anim = cc.find("UI_Root/a ...
- asp.net后台向前端输出js脚本的三种方法
//这个方法最快,因为它会输出到html标签之前 Response.Write("<script type='text/javascript'>alert('这个最快')< ...
- 总结ASP.NET C#中经常用到的13个JS脚本代码
1.按钮前后台事件 <asp:Button ID="Button1" runat="server" OnClick="Button1_Click ...
- ASP.NET中后台注册js脚本攻略(转)
用Page.ClientScript.RegisterClientScriptBlock 和Page.ClientScript.RegisterStartupScript:区别: 1.使用Page ...
随机推荐
- lua面向对象编程之点号与冒号的差异详细比较
首先,先来一段在lua创建一个类与对象的代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Class = {} Class.__index = Cl ...
- python类里面使用装饰器
参考:http://m.blog.csdn.net/blog/wklken/8118942 def on(name, *args_of_on, **kwargs_of_on): def handle_ ...
- MyBatis 问题列表
问题表现:The content of elements must consist of well-formed character data or markup 解决办法:1.配置的动态SQL语句里 ...
- vjue 点击发送邮件如何处理
<li @click.stop="openSendMail()"> <i class="icons mail-icon" title=&quo ...
- c++ primer读书笔记之c++11(三)
1 =default构造函数限定符 c++11针对构造函数提供了=default限定符,可以用于显式指定编译器自动生成特定的构造函数.析构或赋值运算函数.参考代码如下: class CtorDftTy ...
- jQuery之自定义datagrid控件
sldatagrid 效果: sldatagrid.js (function($) { function loadColumns(sldatagrid, columns) { $(sldatagrid ...
- Android 异步任务——AsyncTask (附使用AsyncTask下载图片Demo)
我们编程的时候经常需要处理同步任务和异步任务,在Android里面存在一个特性,就是UI线程是不安全的线程.所谓UI线程不安全也就是我们的主线程(进程启动的第一个线程)不能在线程外操作主线程的资源.因 ...
- [转]JSTL 与 JSP 或者 Java 相互传递变量的代码
原文地址:http://blog.csdn.net/joyous/article/details/6689861 两种方式 <c:set var="s1" value=&qu ...
- [服务]Crontab和每隔10S执行一次
转自:https://www.cnblogs.com/juandx/archive/2015/11/24/4992465.html linux下定时执行任务的方法 在LINUX中你应该先输入cron ...
- RPC框架与分布式服务框架的区别
第一:RPC框架是点对点的通信方式,即服务消费者与服务提供者是点对点通信 第二:分布式服务框架,不近具有RPC框架的特性,同时,还包括以下特性: 1.提供多台服务器提供服务,具有负载均衡策略 2.服务 ...