查看: 6464|回复: 0
打印 上一主题 下一主题

如何封装JS和CSS文件为服务器端控件

[复制链接]
跳转到指定楼层
1#
发表于 2007-9-16 13:00:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
我们以封装一个JS的日期控件为列子,将它和服务器的TextBox结合在一起做成一个服务器控件,以达到直接托上去就可以使用的效果。其实很简单,大家共同学习。先看看效果图:




方法:
  首先:下载一个JS的日期组件,带封装。
  然后:建一个日期类文件CalendarBox.cs代码如下:
  1.   using System;
  2.   using System.Collections.Generic;
  3.   using System.ComponentModel;
  4.   using System.Text;
  5.   using System.Web;
  6.   using System.Drawing;
  7.   using System.Web.UI;
  8.   using System.Web.UI.WebControls;
  9.   using System.Web.UI.HtmlControls;
  10.    
  11.   [assembly: WebResource("Wisesoft.Web.Control.Wisesoft.Calendar.calendar.js", "application/x-javascript", PerformSubstitution=true)]
  12.    
  13.   namespace Wisesoft.Web.Control
  14.   {
  15.    [ToolboxBitmap(typeof(CalenderBox), "Wisesoft.Calendar.CalendarBox.ico")]
  16.    public class CalenderBox : TextBox
  17.    {
  18.    protected override void OnPreRender(EventArgs e)
  19.    {
  20.    string calendar = CalenderCSS.CSS;
  21.    calendar = calendar.Replace("$ImaginURL$", this.ImaginURL);
  22.    if (!Page.ClientScript.IsClientScriptBlockRegistered("_calendar"))
  23.    Page.ClientScript.RegisterClientScriptBlock(typeof(string), "_calendar", calendar);
  24.    
  25.    this.Page.PreRenderComplete += new EventHandler(Page_PreRenderComplete);
  26.    this.CssClass = "Wdate";
  27.    this.Attributes.Add("onfocus","setday(this)");
  28.    this.Attributes.Add("onchange", "checkDate(this.value)");
  29.    base.OnPreRender(e);
  30.    }
  31.    
  32.    void Page_PreRenderComplete(object sender, EventArgs e)
  33.    {
  34.    Page.ClientScript.RegisterClientScriptResource(this.GetType(), "Wisesoft.Web.Control.Wisesoft.Calendar.calendar.js");
  35.    }
  36.    
  37.    /**////  
  38.    /// 弹出日期控件小图片的地址
  39.    ///  
  40.    [Bindable(true)]
  41.    [Category("图标设置")]
  42.    [DefaultValue("imagin/calender.gif")]
  43.    [Localizable(true)]
  44.    public string ImaginURL
  45.    {
  46.    get
  47.    {
  48.    String s = (String)ViewState["ImaginURL"];
  49.    return ((s == null) ? "imagin/calender.gif" : s);
  50.    }
  51.    set
  52.    {
  53.    ViewState["ImaginURL"] = value;
  54.    }
  55.    }
  56.    
  57.    /**////  
  58.    /// 设置日期,时间的初始格式。
  59.    ///  
  60.    [Bindable(true)]
  61.    [Category("初始化设置")]
  62.    [DefaultValue(false)]
  63.    [Localizable(true)]
  64.    public bool ShowTime
  65.    {
  66.    get
  67.    {
  68.    bool s = (bool)ViewState["ShowTime"];
  69.    if (ViewState["ShowTime"] != null)
  70.    {
  71.    return s;
  72.    }
  73.    return false;
  74.    }
  75.    set
  76.    {
  77.    ViewState["ShowTime"] = value;
  78.    }
  79.    }
  80.    
  81.    
  82.    /**////  
  83.    /// 注样式文件
  84.    ///  
  85.    ///  
  86.    private void RegisterCssFile(string path)
  87.    {
  88.    HtmlLink link1 = new HtmlLink();
  89.    link1.Attributes["type"] = "text/css";
  90.    link1.Attributes["rel"] = "stylesheet";
  91.    link1.Attributes["href"] = path;
  92.    this.Page.Header.Controls.Add(link1);
  93.    }
  94.    }
  95.   }  
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州朗动科技(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:政企网站,系统平台,微信公众号,各类小程序,手机APP客户端,浙里办微应用,浙政钉微应用、主机域名、虚拟空间、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2026 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

快速回复 返回顶部 返回列表