怎么封装JS和CSS文件为服务器端控件
我们以封装一个js的日期控件为列子,将它和服务器的textbox结合在一起做成一个服务器控件,以达到直接托上去就可以使用的效果。其实很简单,大家共同学习。先看看效果图:
方法:
首先:下载一个js的日期组件,带封装。
然后:建一个日期类文件calendarbox.cs代码如下:
| using system; using system.collections.generic; using system.componentmodel; using system.text; using system.web; using system.drawing; using system.web.ui; using system.web.ui.webcontrols; using system.web.ui.htmlcontrols; [assembly: webresource("wisesoft.web.control.wisesoft.calendar.calendar.js", "application/x-javascript", performsubstitution=true)] namespace wisesoft.web.control { [toolboxbitmap(typeof(calenderbox), "wisesoft.calendar.calendarbox.ico")] public class calenderbox : textbox { protected override void onprerender(eventargs e) { string calendar = calendercss.css; calendar = calendar.replace("$imaginurl$", this.imaginurl); if (!page.clientscript.isclientscriptblockregistered("_calendar")) page.clientscript.registerclientscriptblock(typeof(string), "_calendar", calendar); this.page.prerendercomplete += new eventhandler(page_prerendercomplete); this.cssclass = "wdate"; this.attributes.add("onfocus","setday(this)"); this.attributes.add("onchange", "checkdate(this.value)"); base.onprerender(e); } void page_prerendercomplete(object sender, eventargs e) { page.clientscript.registerclientscriptresource(this.gettype(), "wisesoft.web.control.wisesoft.calendar.calendar.js"); } /**//// <summary> /// 弹出日期控件小图片的地址 /// </summary> [bindable(true)] [category("图标设置")] [defaultvalue("imagin/calender.gif")] [localizable(true)] public string imaginurl { get { string s = (string)viewstate["imaginurl"]; return ((s == null) ? "imagin/calender.gif" : s); } set { viewstate["imaginurl"] = value; } } /**//// <summary> /// 设置日期,时间的初始格式。 /// </summary> [bindable(true)] [category("初始化设置")] [defaultvalue(false)] [localizable(true)] public bool showtime { get { bool s = (bool)viewstate["showtime"]; if (viewstate["showtime"] != null) { return s; } return false; } set { viewstate["showtime"] = value; } } /**//// <summary> /// 注样式文件 /// </summary> /// <param name="path"></param> private void registercssfile(string path) { htmllink link1 = new htmllink(); link1.attributes["type"] = "text/css"; link1.attributes["rel"] = "stylesheet"; link1.attributes["href"] = path; this.page.header.controls.add(link1); } } } |
注意:[assembly: WebResource("Wisesoft.Web.Control.Wisesoft.Calendar.calendar.js", "application/x-javascript", PerformSubstitution=true)]是用来封装你的JS文件,要使用你项目的名字加上你JS文件的名字,还需要将你的JS文件做一点设置,点右件,选择属性--->然后选择高级,选择生成操作-->选择嵌入的资源,这样才能将JS文件封装进去,当然如果有图片或者是CSS文件也是一样的。 (文章来源 www.iocblog.net)
Tag: TextBox ,控件
文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。