向页面动态加载JS文件的的一个小技巧

ASP.NET 2.0为我们提供了ClientScriptManager.RegisterClientScriptInclude 方法向页面加载JS文件.虽然这样在页面运行时动态加载JS,但是我们必须事先编写好JS文件以便页面加载.
所以在JS文件数量很大时这个方法并不是很"实在".
在这里我介绍一种我最近发现的动态加载的方法一般大家参考
首先,我们在项目中添加一个JS.ASPX的文件.
接下来我们就要重写页面的Render方法)

 

 1 None.gif using  System;
 2 None.gif using  System.Data;
 3 None.gif using  System.Configuration;
 4 None.gif using  System.Collections;
 5 None.gif using  System.Web;
 6 None.gif using  System.Web.Security;
 7 None.gif using  System.Web.UI;
 8 None.gif using  System.Web.UI.WebControls;
 9 None.gif using  System.Web.UI.WebControls.WebParts;
10 None.gif using  System.Web.UI.HtmlControls;
11 None.gif
12 None.gif public  partial  class  JS : System.Web.UI.Page
13 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
14InBlock.gif    protected void Page_Load(object sender, EventArgs e)
15ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
16InBlock.gif
17ExpandedSubBlockEnd.gif    }

18InBlock.gif    protected override void Render(HtmlTextWriter writer)//我们必须重写Render方法
19ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
20InBlock.gif        string js = CreateJS();    //生成JS代码
21InBlock.gif        writer.Write(js);
22ExpandedSubBlockEnd.gif    }

23InBlock.gif    private string CreateJS()   //产生端定义name变量的JS代码
24ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
25InBlock.gif        if (Page.Request["Param"== null)
26InBlock.gif            throw new Exception("参数Param不能为空");
27InBlock.gif        string Param = Page.Request["Param"].ToString();
28InBlock.gif        string js = "";
29InBlock.gif        switch (Param)
30ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
31InBlock.gif            case "1":
32InBlock.gif                //ToDodot.gif.
33InBlock.gif                js = "var name='戴涛'";
34InBlock.gif                break;
35InBlock.gif            case "2":
36InBlock.gif                //ToDo
37InBlock.gif                js = "var name='孙燕姿'";
38InBlock.gif                break;
39InBlock.gif            default:
40InBlock.gif                break;
41InBlock.gif                
42ExpandedSubBlockEnd.gif        }

43InBlock.gif        return js;
44ExpandedSubBlockEnd.gif    }

45ExpandedBlockEnd.gif}

46 None.gif

这里的工作我们就完成了.
接下来我们创建一个JS文件来配合这段代码使用

None.gif //  JScript 文件
None.gif
function Test()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    alert(
'hello '+name);
ExpandedBlockEnd.gif}

很简单吧.
现在就来添加一个调用这两个JS文件的页面,同样也很简单

 1 None.gif <% @ Page Language = " C# "   %>
 2 None.gif
 3 None.gif <! DOCTYPE html PUBLIC  " -//W3C//DTD XHTML 1.0 Transitional//EN "   " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >
 4 None.gif
 5 None.gif < script runat = " server " >
 6 None.gif
 7 None.gif     string  Param  =   " 2 " ;
 8 None.gif </ script >
 9 None.gif
10 None.gif < html xmlns = " http://www.w3.org/1999/xhtml "   >
11 None.gif < head id = " Head1 "  runat = " server " >
12 None.gif     < title > 无标题页 </ title >
13 None.gif     < script type = " text/jscript "  language = " jscript "  src = " JScript.js " ></ script >
14 None.gif     < script type = " text/javascript "  language = " javascript "  src = " JS.aspx?param=<%=Param %> " ></ script >
15 None.gif </ head >
16 None.gif < body >
17 None.gif     < form id = " form1 "  runat = " server " >
18 None.gif         < input id = " Button1 "  type = " button "  value = " button "  onclick = " Test() "   />
19 None.gif     </ form >
20 None.gif </ body >
21 None.gif </ html >
22 None.gif

电脑上没有抓图软件,所以就不给大家看结果了
(小弟第一次写东西,大家多包含)

posted on 2007-03-15 13:55  yanzimywife 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/yanzimywife/archive/2007/03/15/675864.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值