我們以封裝乙個js的日期控制項為列子,將它和伺服器的textbox結合在一起做成乙個伺服器控制項,以達到直接託上去就可以使用的效果。其實很簡單,大家共同學習。先看看效果圖:
[bindable(true)]
[category("圖示設定")]
[defaultvalue("imagin/calender.gif")]
[localizable(true)]
public string imaginurl
set }
/**
/// 設定日期,時間的初始格式。
///
[bindable(true)]
[category("初始化設定")]
[defaultvalue(false)]
[localizable(true)]
public bool showtime
return false;
} set }
/**
/// 注樣式檔案
///
///
private void registercssfile(string path) }
} 再看
void page_prerendercomplete(object sender, eventargs e)
是在頁面呈現之前將你的js檔案註冊到頁面上。
[bindable(true)]
[category("圖示設定")]
[defaultvalue("imagin/calender.gif")]
[localizable(true)]
是利用反射的元資料資訊,來設定屬性。就是給你的日期控制項旁邊加上個小圖示,把它做成乙個屬性,可以讓程式設計師自定義設定,也可以把它繼承進去。
好了,這樣就可以把js檔案封裝好了,再來看看css檔案如何封裝並寫入客戶端。
我們可以看見下面有乙個方法,
/**
/// 注樣式檔案
///
///
private void registercssfile(string path)
它就是用來註冊你的css檔案的,大家都知道在我們的頁面**裡面是引入外部樣式檔案。這個方法就是達到這個目的。那麼我們現在還沒有樣式檔案。
因此我們就必須建立乙個css,然後把它設定一下(和js的設定方式一樣)。再到void page_prerendercomplete(object sender, eventargs e)方法呼叫就可以了,但是還有其他方法,我們來介紹第二種(對js檔案也可以這樣使用),建立乙個calendarcss.cs檔案,**如下:
using system;
using system.collections.generic;
using system.text;
namespace wisesoft.web.control }
這個類其實是將我們的css檔案,寫為乙個字串形式,然後供主函式呼叫,以註冊到客戶端使用。
那麼我們再看看calendarbox.cs檔案裡的這段**
string calendar = calendercss.css;
calendar = calendar.replace("$imaginurl$", this.imaginurl);
if (!page.clientscript.isclientscriptblockregistered("_calendar"))
page.clientscript.registerclientscriptblock(typeof(string), "_calendar", calendar);
它就是將我們已經寫好的一段字串以快的形式註冊到客戶端(當然還有更多的註冊方式,可以在msdn看看clientscript類)。
好了,基本上就可以使用了。編譯一下呢?
如何封裝JS和CSS檔案為伺服器端控制項
我們以封裝乙個js的日期控制項為列子,將它和伺服器的textbox結合在一起做成乙個伺服器控制項,以達到直接託上去就可以使用的效果。其實很簡單,大家共同學習。先看看效果圖 方法 然後 建乙個日期類檔案calendarbox.cs 如下 using system using system.collec...
新增css和js檔案
需要注意的是,你可以通過umbraco後台的ui來建立樣式檔案,建立路徑是settings stylesheets create,不過站長覺得手動去建立css檔案更簡單直接。接下來就是js檔案,拷貝初始化包裡的modernizr 2.0.6.min.js檔案到站點的scripts資料夾中,相應的你也...
CSS檔案和JS檔案組織
在開發的時候會使用到多個css檔案和js檔案,如何組織就成了乙個問題。個人認為在開發的時候使用多個檔案,這樣方便檢視,到發布的時候再用工作合併成乙個。大概思路如下 一般包括兩個檔案,乙個在開發的時候使用,乙個在發布的時候使用,程式根據配置載入其中乙個。例如有乙個all debug.css檔案,在開發...