C# 服务器控件-嵌入图像-在css中引用

C# 服务器控件-嵌入图像-在css中引用,c#,asp.net,custom-controls,C#,Asp.net,Custom Controls,我已经成功地创建了一个带有嵌入式css和嵌入式js文件的服务器控件 这是我的密码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Security.Permissions; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI

我已经成功地创建了一个带有嵌入式css和嵌入式js文件的服务器控件

这是我的密码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Security.Permissions;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using FCC.Web.UI.CustomControl;
using System.Web.UI.HtmlControls;

[assembly: TagPrefix("CustomControls", "asp")]
namespace FCC.Web.UI.CustomControl
{
    [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
    [DefaultProperty("Value")]
    [ValidationProperty("Value")]
    [ToolboxData("<{0}:DatePicker runat=server></{0}:DatePicker>")]
    public class DatePicker : CompositeControl, iDynamicControl
    {
    #region-- privates --
    private TextBox textbox1;
    private RequiredFieldValidator requiredFieldValidator1;
    private RegularExpressionValidator regularExpressionValidator1;
    private HtmlInputHidden hiddenField1;
    #endregion

    #region -- properties--

    [Bindable(true)]
    [Category("Styles")]
    [Themeable(true)]
    [DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)]
    [PersistenceMode(PersistenceMode.InnerProperty)]
    [Localizable(true)]
    public Style TextBoxStyle
    {
        get
        {
            EnsureChildControls();
            return textbox1.ControlStyle;
        }
        set
        {
            EnsureChildControls();
            textbox1.ControlStyle.MergeWith(value);
        }
    }

    [Bindable(true)]
    [Category("Styles")]
    [Localizable(true)]
    public string TextBoxCssStyle
    {
        get
        {
            EnsureChildControls();
            return textbox1.CssClass;
        }
        set
        {
            EnsureChildControls();
            textbox1.CssClass = value + " calender";
        }
    }

    [Bindable(true)]
    [Category("Appearance")]
    [DefaultValue("")]
    [Localizable(true)]
    [Description("Text displayed on the textbox")]
    public String Value
    {
        get
        {
            EnsureChildControls();
            if (textbox1.Text.IsNullOrEmpty()) { return string.Empty; }
            else
            {
                DateTime date1 = DateTime.Parse(textbox1.Text);
                string datestring = string.Format("<day>{0}</day><month>{1}</month><year>{2}</year>", date1.Day.ToString(), date1.Month.ToString(), date1.Year.ToString());
                return datestring;
            }
        }
        set
        {

        }
    }

    [Bindable(true)]
    [Category("Appearance")]
    [DefaultValue("")]
    [Localizable(true)]
    public string InvalidDateErrorMessage
    {
        get
        {
            EnsureChildControls();
            return regularExpressionValidator1.ErrorMessage.IsNullOrEmpty() ? "Invalid date" : regularExpressionValidator1.ErrorMessage;
        }
        set
        {
            EnsureChildControls();
            regularExpressionValidator1.ErrorMessage = value;
        }
    }


    [Bindable(true)]
    [Category("Default")]
    [Localizable(true)]
    public bool IsRequired
    {
        get
        {
            EnsureChildControls();
            return requiredFieldValidator1.Enabled;
        }
        set
        {
            EnsureChildControls();
            requiredFieldValidator1.Enabled = value;
        }
    }

    [Bindable(true)]
    [Category("Default")]
    [DefaultValue("")]
    [Localizable(true)]
    [Description("Validation group for the textbox and inbuilt validations")]
    public string ValidationGroup
    {
        get
        {
            EnsureChildControls();
            return textbox1.ValidationGroup;
        }
        set
        {
            EnsureChildControls();
            regularExpressionValidator1.ValidationGroup = value;
            requiredFieldValidator1.ValidationGroup = value;
            textbox1.ValidationGroup = value;
        }
    }

    [Bindable(true)]
    [Category("Default")]
    [DefaultValue("")]
    [Localizable(true)]
    [Description("cssClasses that apply to all validators")]
    public string ValidationErrorCssClass
    {
        get
        {
            EnsureChildControls();
            return requiredFieldValidator1.CssClass;
        }
        set
        {
            EnsureChildControls();
            requiredFieldValidator1.CssClass = regularExpressionValidator1.CssClass = value;
        }
    }

    [Bindable(true)]
    [Category("Default")]
    [DefaultValue("")]
    public DateTime? Date
    {
        get
        {
            EnsureChildControls();
            if (textbox1.Text.IsNullOrEmpty()) { return null; }
            else
            {
                return DateTime.Parse(textbox1.Text);
            }
        }
        set
        {
            EnsureChildControls();
            textbox1.Text = !value.HasValue ? string.Empty : value.Value.ToString("dd-MMM-yyyy");
        }
    }

    [Bindable(true)]
    [Category("Appearance")]
    [DefaultValue("")]
    [Localizable(true)]
    [Description("Error message that appears when text box is empty")]
    public string RequiredErrorMessage
    {
        get
        {
            EnsureChildControls();
            return requiredFieldValidator1.ErrorMessage.IsNullOrEmpty() ? "Required Field" : requiredFieldValidator1.ErrorMessage;
        }
        set
        {
            EnsureChildControls();
            requiredFieldValidator1.ErrorMessage = value;
        }
    }

    #endregion

    protected override void OnLoad(EventArgs e)
    {
        EnsureChildControls();
        base.OnLoad(e);
    }

    protected override void CreateChildControls()
    {
        Controls.Clear();
        #region--hiddenField--
        hiddenField1 = new HtmlInputHidden();
        hiddenField1.ID = "hiddenVal1";
        hiddenField1.Attributes["class"]="hiddenVal";
        #endregion


        #region-- textbox--
        textbox1 = new TextBox();
        textbox1.ID = "textbox1";
        textbox1.Style[HtmlTextWriterStyle.VerticalAlign] = "middle";
        #endregion
        #region--required validation--
        requiredFieldValidator1 = new RequiredFieldValidator();
        requiredFieldValidator1.ID = "validator1";
        requiredFieldValidator1.ErrorMessage = RequiredErrorMessage;
        requiredFieldValidator1.Display = ValidatorDisplay.Dynamic;
        requiredFieldValidator1.ControlToValidate = textbox1.ID;
        requiredFieldValidator1.Enabled = false;
        requiredFieldValidator1.SetFocusOnError = true;

        #endregion
        #region--regular expression validator--
        regularExpressionValidator1 = new RegularExpressionValidator();
        regularExpressionValidator1.ID = "validator2";
        regularExpressionValidator1.Enabled = true;
        regularExpressionValidator1.ErrorMessage = InvalidDateErrorMessage;
        regularExpressionValidator1.Display = ValidatorDisplay.Dynamic;
        regularExpressionValidator1.ControlToValidate = textbox1.ID;
        regularExpressionValidator1.SetFocusOnError = true;
        regularExpressionValidator1.ValidationExpression = "^((((((0?[1-9])|([1-2][0-9])|(3[0-1]))-(([jJ][aA][nN])|([mM][aA][rR])|([mM][aA][yY])|([jJ][uU][lL])|([aA][uU][gG])|([oO][cC][tT])|([dD][eE][cC])))|(((0?[1-9])|([1-2][0-9])|(30))-(([aA][pP][rR])|([jJ][uU][nN])|([sS][eE][pP])|([nN][oO][vV])))|(((0?[1-9])|(1[0-9])|(2[0-8]))-([fF][eE][bB])))-(20(([13579][01345789])|([2468][1235679]))))|(((((0?[1-9])|([1-2][0-9])|(3[0-1]))-(([jJ][aA][nN])|([mM][aA][rR])|([mM][aA][yY])|([jJ][uU][lL])|([aA][uU][gG])|([oO][cC][tT])|([dD][eE][cC])))|(((0?[1-9])|([1-2][0-9])|(30))-(([aA][pP][rR])|([jJ][uU][nN])|([sS][eE][pP])|([nN][oO][vV])))|(((0?[1-9])|(1[0-9])|(2[0-9]))-([fF][eE][bB])))-(20(([13579][26])|([2468][048])))))$";


        #endregion

        Controls.Add(textbox1);
        Controls.Add(hiddenField1);
        Controls.Add(requiredFieldValidator1);
        Controls.Add(regularExpressionValidator1);
    }

    protected override void RecreateChildControls()
    {
        EnsureChildControls();
    }

    protected override void OnPreRender(EventArgs e)
    {
        base.OnPreRender(e);

        ClientScriptManager cs = this.Page.ClientScript;

        string jqueryResource = "FCC.Web.UI.CustomControl.jQuery1_8_3.js";
        cs.RegisterClientScriptResource(typeof(DatePicker), jqueryResource);

        string jqueryUIresource = "FCC.Web.UI.CustomControl.jquery-ui-1.9.2.smoothness_all.min.js";
        cs.RegisterClientScriptResource(typeof(DatePicker), jqueryUIresource);

        string calenderScriptResource = "FCC.Web.UI.CustomControl.calender.js";
        cs.RegisterClientScriptResource(typeof(DatePicker), calenderScriptResource);

        string templink = "<link rel='stylesheet' text='text/css' href='{0}' />";
        string csslocation = Page.ClientScript.GetWebResourceUrl(this.GetType(), "FCC.Web.UI.CustomControl.jquery-ui-1.9.2.smoothness_all.min.css");
        LiteralControl lc = new LiteralControl(string.Format(templink, csslocation));
        Page.Header.Controls.Add(lc);


    }

    protected override void Render(HtmlTextWriter writer)
    {
        AddAttributesToRender(writer);

        textbox1.RenderControl(writer);

        hiddenField1.RenderControl(writer);
        requiredFieldValidator1.RenderControl(writer);
        regularExpressionValidator1.RenderControl(writer);
        //writer.Write("DateControl");
    }
}
}
使用系统;
使用System.Collections.Generic;
使用系统组件模型;
使用System.Linq;
使用System.Security.Permissions;
使用系统文本;
使用System.Web;
使用System.Web.UI;
使用System.Web.UI.WebControl;
使用FCC.Web.UI.CustomControl;
使用System.Web.UI.HTMLControl;
[程序集:标记前缀(“CustomControls”、“asp”)]
命名空间FCC.Web.UI.CustomControl
{
[AspNetHostingPermission(SecurityAction.Demand,Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,Level=AspNetHostingPermissionLevel.Minimal)]
[违约财产(“价值”)]
[验证属性(“价值”)]
[ToolboxData(“”)
公共类日期选择器:CompositeControl、iDynamicControl
{
#地区——私人--
私有文本框textbox1;
私有RequiredFieldValidator RequiredFieldValidator 1;
私有RegularExpressionValidator RegularExpressionValidator 1;
私有HtmlInputHiddenField1;
#端区
#区域--属性--
[可装订(真实)]
[类别(“样式”)]
[主题(正确)]
[DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)]
[PersistenceMode(PersistenceMode.InnerProperty)]
[可本地化(正确)]
公共样式TextBoxStyle
{
得到
{
ensureChildControl();
返回textbox1.ControlStyle;
}
设置
{
ensureChildControl();
textbox1.ControlStyle.MergeWith(值);
}
}
[可装订(真实)]
[类别(“样式”)]
[可本地化(正确)]
公共字符串textboxcsssstyle
{
得到
{
ensureChildControl();
返回textbox1.CssClass;
}
设置
{
ensureChildControl();
textbox1.CssClass=值+日历;
}
}
[可装订(真实)]
[类别(“外观”)]
[默认值(“”)
[可本地化(正确)]
[说明(“文本框上显示的文本”)]
公共字符串值
{
得到
{
ensureChildControl();
if(textbox1.Text.IsNullOrEmpty()){return string.Empty;}
其他的
{
DateTime date1=DateTime.Parse(textbox1.Text);
string datestring=string.Format(“{0}{1}{2}”、date1.Day.ToString()、date1.Month.ToString()、date1.Year.ToString());
返回日期字符串;
}
}
设置
{
}
}
[可装订(真实)]
[类别(“外观”)]
[默认值(“”)
[可本地化(正确)]
公共字符串InvalidDateErrorMessage
{
得到
{
ensureChildControl();
返回regularExpressionValidator1.ErrorMessage.IsNullOrEmpty()?“无效日期”:regularExpressionValidator1.ErrorMessage;
}
设置
{
ensureChildControl();
regularExpressionValidator1.ErrorMessage=值;
}
}
[可装订(真实)]
[类别(“默认”)]
[可本地化(正确)]
需要公共场所
{
得到
{
ensureChildControl();
返回RequiredFieldValidator 1.已启用;
}
设置
{
ensureChildControl();
RequiredFieldValidator 1.已启用=值;
}
}
[可装订(真实)]
[类别(“默认”)]
[默认值(“”)
[可本地化(正确)]
[说明(“文本框和内置验证的验证组”)]
公共字符串验证组
{
得到
{
ensureChildControl();
返回textbox1.ValidationGroup;
}
设置
{
ensureChildControl();
regularExpressionValidator1.ValidationGroup=值;
requiredFieldValidator1.ValidationGroup=值;
textbox1.ValidationGroup=值;
}
}
[可装订(真实)]
[类别(“默认”)]
[默认值(“”)
[可本地化(正确)]
[说明(“适用于所有验证器的cssClasses”)]
公共字符串验证ErrorCSClass
{
得到
{
ensureChildControl();
返回requiredFieldValidator1.CssClass;
}
设置
{
ensureChildControl();
requiredFieldValidator1.CssClass=regularExpressionValidator1.CssClass=值;
}
}
[可装订(真实)]
[类别(“默认”)]
[默认值(“”)
公共日期时间?日期
{
得到
{
ensureChildControl();
if(textbox1.Text.IsNullOrEmpty()){return null;}
其他的
{
returndatetime.Parse(textbox1.Text);
}
}
设置
{
ensureChildControl();
textbox1.Text=!value.HasValue?string.Empty:value.value.ToString(“dd-MMM-yyyy”);
}
}
[可装订(真实)]
[类别(“外观”)]
[默认值(“”)
[可本地化(正确)]
[说明(“文本框为空时出现的错误消息”)]
需要公共字符串错误消息
{
得到
{
ensureChildControl();
返回requiredFieldValidator1.ErrorMessage.IsNullOrEmpty()?“RequiredField”:requiredFieldValidator1.ErrorMessage;
}
设置
{
ensureChildControl();
RequiredFieldValidator 1.ErrorMessage=值;
}
}
#端区
受保护的覆盖无效加载(事件参数e)
{
ensureChildControl();
基础荷载(e);
}
受保护的覆盖无效CreateChildControls()
{
控件。清除();
#区域——希登菲尔德--
hiddenField1=新的HtmlInputHidden();
hiddenField1.ID=“hiddenVal1”;
hiddenField1.属性[“类”]=“hiddenVal”;
<% = WebResource("image1.jpg") %>
Default.css
body{
    background: <%=WebResource("xyz.jpg")%>
}



[assembly, WebResource("Default.css","text/css", PerformSubstitution=true)]
[assembly, WebResource("xyz.jpg","image/jpg")]