C# 服务器控件-嵌入图像-在css中引用
我已经成功地创建了一个带有嵌入式css和嵌入式js文件的服务器控件 这是我的密码: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
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")]