温馨提示:代码在线浏览功能只能做为源码浏览参考,不能展示项目的全部,如果想更进一步了解该代码请下载:逐迹内容管理系统AspxNuke v2.0源码
当前文件路径:AspxNuke/Common/Component/DateTimeControl.cs

1using System; 2
using System.Web.UI; 3
using System.Web.UI.WebControls; 4
using System.ComponentModel; 5
6
namespace AspxNuke.Component 7
{ 8
/// <summary> 9
/// 日期控件 10
/// </summary> 11
[DefaultProperty("Text"), 12
ToolboxData("<{0}:DateTimeControl runat=server></{0}:DateTimeControl>")] 13
public class DateTimeControl : System.Web.UI.WebControls.TextBox 14
{ 15
private const string DATETIME_SCRIPT_ID = "{221d4a2a-2abd-4e08-a52b-6bf15ae95209}"; 16
private const string DATETIME_SCRIPT_BLOCK = "<script src=\"{0}WdatePicker.js\" type=\"text/javascript\"></script>"; 17
18
private void RenderJavscript() 19
{ 20
ClientScriptManager scriptManager = Page.ClientScript; 21
if (!scriptManager.IsClientScriptBlockRegistered(DATETIME_SCRIPT_ID)) 22
{ 23
scriptManager.RegisterClientScriptBlock(this.GetType(),DATETIME_SCRIPT_ID, string.Format(DATETIME_SCRIPT_BLOCK, this.ScriptPath)); 24
} 25
} 26
27
/// <summary> 28
/// 将需要为控件呈现的 HTML 属性和样式添加到指定的 HtmlTextWriter 对象。 29
/// </summary> 30
/// <param name="writer">表示要在客户端呈现 HTML 内容的输出流。</param> 31
protected override void AddAttributesToRender(HtmlTextWriter writer) 32
{ 33
base.AddAttributesToRender(writer); 34
writer.AddAttribute("ondblclick", GetScript()); 35
} 36
/// <summary> 37
/// 通过查找文件数据或调用用户事件获取要呈现的广告信息。 38
/// </summary> 39
/// <param name="e">包含事件数据的 EventArgs 对象。</param> 40
protected override void OnPreRender(EventArgs e) 41
{ 42
base.OnPreRender(e); 43
RenderJavscript(); 44
} 45
46
/// <summary> 47
/// 将服务器控件内容发送到提供的 HtmlTextWriter 对象,此对象编写将在客户端呈现的内容。 48
/// </summary> 49
/// <param name="output">接收服务器控件内容的 HtmlTextWriter 对象。</param> 50
protected override void Render(HtmlTextWriter output) 51
{ 52
if(base.CssClass.Length == 0) 53
{ 54
base.CssClass = "Wdate"; 55
} 56
base.Render(output); 57
} 58
59
/// <summary> 60
/// 61
/// </summary> 62
[Bindable(true), Category("Appearance"), DefaultValue(""), Description("TextBox_Text"), PersistenceMode(PersistenceMode.EncodedInnerDefaultProperty)] 63
public override string Text 64
{ 65
get 66
{ 67
string str = (string)this.ViewState["Text"]; 68
if (str != null) 69
{ 70
return DateTime.Parse(str).ToString(_format); 71
} 72
return string.Empty; 73
} 74
set 75
{ 76
this.ViewState["Text"] = value; 77
} 78
} 79
80
/// <summary> 81
/// 82
/// </summary> 83
public DateTimeControl() : base() 84
{} 85
86
private string _format; 87
/// <summary> 88
/// 格式设置信息 89
/// </summary> 90
[Description("格式设置信息"),Bindable(true), Category("Behavior"), DefaultValue("")] 91
public string Format 92
{ 93
set { _format = value;} 94
get { return _format;} 95
} 96
97
private bool _isShowTime; 98
/// <summary> 99
/// 是否显示时间 100
/// </summary> 101
[Description("是否显示时间"),Bindable(true), Category("Behavior"), DefaultValue(false)] 102
public bool IsShowTime 103
{ 104
set { _isShowTime = value;} 105
get {return _isShowTime;} 106
} 107
108
private string _skin = "whyGreen"; 109
/// <summary> 110
/// 皮肤的名称 111
/// </summary> 112
[Description("皮肤名称"),Bindable(true), Category("Behavior"), DefaultValue("whyGreen")] 113
public string Skin 114
{ 115
set { _skin = value;} 116
get {return _skin;} 117
} 118
119
private string GetScript() 120
{ 121
string ret = string.Format("new WdatePicker({0},{1},{2},'{3}')","this",_format == null ? "null" : string.Format("'{0}'",_format.Replace("yyyy","%Y").Replace("MM","%M").Replace("dd","%D").Replace("HH","%h").Replace("mm","%m").Replace("ss","%s")),_isShowTime.ToString().ToLower(),_skin); 122
return ret; 123
} 124
125
private string _scriptPath = "/Portal/ClientFiles/My97DatePicker/"; 126
/// <summary> 127
/// 脚本路径 128
/// </summary> 129
[Bindable(true), Category("Appearance"), DefaultValue("/zhuji_component/js/")] 130
public string ScriptPath 131
{ 132
set { _scriptPath = value; } 133
get { return _scriptPath; } 134
} 135
} 136
} 137





}