<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ASP.NET自定義WEB控件中嵌入JS文件
    一直想做一些自定義控件,能進行一些UI上的驗證.于是就需要使用到嵌入的JS文件.

    找了一些資料,找了些例子,發(fā)現不行,首先把JS文 件設為嵌入資源是都有說的,
    但[assembly: WebResource("SYJ0.dir0.js1.js", "application/x-javascript", PerformSubstitution = true)]中SYJ0的說明就不一樣了.有的說是命名空間,有的說是項目名.都不是很正確.

    原因分析:這些資料基本上所說都是建立的項目和命名空間相同.所以可能不會遇到問題.然而我建立的項目是不同的項目名.
    如:我建立的控件庫項目名為WebCtrls,然后修改了項目的默認命名空間為SYJ0.而在代碼中的命名空間使用了SYJ...(有點混亂).
    所以使用網上找的一些例子就是運行不了,要么沒反應,要么提示出錯...

    最后解決:
    [assembly: WebResource("SYJ0.dir0.js1.js", "application/x-javascript", PerformSubstitution = true)]中SYJ0應該是項目屬性窗口的那個默認命名空間名稱.
    后面跟JS文件的路徑.如SYJ0.dir0.js1.js表示,默認命名空間SYJ0下面的dir0目錄下的js1.js文件.
    當然 this.Page.ClientScript.RegisterClientScriptResource(this.GetType(), "SYJ0.dir0.js1.js");這句也不要寫錯了.

    請注意大小寫,沒有測試是否區(qū)分大小寫,還是注意一下.


    下面是一完整的控件庫項目的例子:
    [Class1.cs]
    using System;
    using System.Web.UI.WebControls;
    using System.Web.UI;

    [assembly: WebResource("SYJ0.JScript1.js", "application/x-javascript", PerformSubstitution = true)]
    [assembly: WebResource("SYJ0.dir0.js1.js", "application/x-javascript", PerformSubstitution = true)]

    namespace SYJ
    {
    public class STextBox : WebControl, INamingContainer
    {
    protected TextBox textBox = new TextBox();

    protected override void OnPreRender(EventArgs e)
    {
    this.Page.ClientScript.RegisterClientScriptResource(this.GetType(), "SYJ0.JScript1.js");
    this.Page.ClientScript.RegisterClientScriptResource(this.GetType(), "SYJ0.dir0.js1.js");
    base.OnPreRender(e);
    }
    protected override void RenderContents(System.Web.UI.HtmlTextWriter writer)
    {
    this.textBox.Attributes.Add("id", this.ID);
    this.textBox.Attributes.Add("onclick", "msg(this);showTime();");
    this.textBox.RenderControl(writer);
    }
    }
    }

    // JScript1.js
    function msg(obj)
    {
    alert("hello from web control s js file id["+obj.id+"]");
    }

    // dir0.js1.js
    function showTime()
    {
    alert(new Date());
    }

    使用方法:
    用VS2008建一個解決方案,建立一個默認WEB項目為WebApplication,再建一個庫項目.
    將庫項目的Class1.cs內容換成如上的內容,再在項目下直接建立一個JScript.js文件,再直接建立一個文件夾dir0,在dir0建立一個js1.js文件,內容分別如上所述.
    編譯一下,然后轉到WEB項目的ASPX頁面中,此時打開工具箱,應該會顯示出我們創(chuàng)建的自定義控件STextBox.直接拖一個到頁面,CTRL+F5執(zhí)行,點擊輸入框看效果.

    posted on 2010-11-27 21:13 sanmao 閱讀(675) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網站導航:
     

    常用鏈接

    留言簿(5)

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久久亚洲精品视频| 国产日产成人免费视频在线观看 | 美女视频黄.免费网址| 中文字幕人成无码免费视频| 亚洲精品国产电影午夜| 免费看男女下面日出水来| 亚洲视频在线免费播放| 精品久久8x国产免费观看| 亚洲国产成人久久综合一区| 国产乱子精品免费视观看片| 亚洲黄色在线播放| 在线观看免费高清视频| 亚洲精品无码av中文字幕| 好吊妞在线新免费视频| 真正全免费视频a毛片| 九月婷婷亚洲综合在线| 一级午夜a毛片免费视频| 亚洲精品国产精品乱码不99| 拍拍拍无挡免费视频网站| 亚洲黄色在线观看视频| 久久久久国产精品免费免费搜索| 亚洲中文字幕乱码一区| 亚洲精品国产精品国自产观看| 国产vA免费精品高清在线观看| 久久久久亚洲精品成人网小说| 5555在线播放免费播放| 亚洲欧美国产国产一区二区三区| 国产成人免费永久播放视频平台 | 亚洲无线电影官网| 国产精品69白浆在线观看免费| 亚洲AV无码成人精品区日韩| 久久久久亚洲AV无码专区桃色| 久久aⅴ免费观看| 亚洲欧洲AV无码专区| 在线观看亚洲精品国产| 免费观看国产网址你懂的| 美景之屋4在线未删减免费 | 一本无码人妻在中文字幕免费| 激情婷婷成人亚洲综合| 久久久久亚洲Av片无码v| 成人永久免费高清|