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

1using System; 2
using System.Web.UI; 3
using System.Web.UI.WebControls; 4
using System.ComponentModel; 5
using System.Text.RegularExpressions; 6
using System.Runtime.InteropServices; 7
8
[assembly: WebResource("AspxNuke.Component.js.numeric.js", "application/x-javascript")] 9
namespace AspxNuke.Component 10
{ 11
/// <summary> 12
/// 数字控件。 13
/// </summary> 14
[DefaultProperty("Text"), 15
ToolboxData("<{0}:NumericControl runat=server></{0}:NumericControl>")] 16
public class NumericControl : System.Web.UI.WebControls.TextBox 17
{ 18
private const string NUMERAL_SCRIPT_KEYPRESS = "return NumericControl_Validate_KeyPress(this,{0},{1})"; 19
private const string NUMERAL_SCRIPT_PASTE = "return NumericControl_Validate_Paste(this)"; 20
private const string NUMERAL_SCRIPT_DRAGENTER = "return NumericControl_Validate_DragEnter(this)"; 21
22
private void RenderJavscript() 23
{ 24
ClientScriptManager scriptManager = Page.ClientScript; 25
scriptManager.RegisterClientScriptResource(this.GetType(), "AspxNuke.Component.js.numeric.js"); 26
} 27
28
/// <summary> 29
/// 将需要为控件呈现的 HTML 属性和样式添加到指定的 HtmlTextWriter 对象。 30
/// </summary> 31
/// <param name="writer">表示要在客户端呈现 HTML 内容的输出流。</param> 32
protected override void AddAttributesToRender(HtmlTextWriter writer) 33
{ 34
base.AddAttributesToRender(writer); 35
writer.AddAttribute("onkeypress", string.Format(NUMERAL_SCRIPT_KEYPRESS,_decimals,AllowNegative.ToString().ToLower())); 36
writer.AddAttribute("onpaste",NUMERAL_SCRIPT_PASTE); 37
writer.AddAttribute("ondragenter",NUMERAL_SCRIPT_DRAGENTER); 38
} 39
40
/// <summary> 41
/// 通过查找文件数据或调用用户事件获取要呈现的广告信息。 42
/// </summary> 43
/// <param name="e">包含事件数据的 EventArgs 对象。</param> 44
protected override void OnPreRender(EventArgs e) 45
{ 46
base.OnPreRender(e); 47
RenderJavscript(); 48
} 49
50
/// <summary> 51
/// 52
/// </summary> 53
[Bindable(true), Category("Appearance"), DefaultValue(""), Description("TextBox_Text"), PersistenceMode(PersistenceMode.EncodedInnerDefaultProperty)] 54
public override string Text 55
{ 56
get 57
{ 58
string str = (string) this.ViewState["Text"]; 59
if (str != null) 60
{ 61
return decimal.Parse(str).ToString(_format); 62
} 63
return string.Empty; 64
} 65
set 66
{ 67
this.ViewState["Text"] = value; 68
} 69
} 70
71
/// <summary> 72
/// 73
/// </summary> 74
public NumericControl() : base() 75
{} 76
77
private string _format; 78
/// <summary> 79
/// 格式化信息 80
/// </summary> 81
[Description("格式化信息"),Bindable(true), Category("Behavior"), DefaultValue("")] 82
public string Format 83
{ 84
set {_format = value;} 85
get {return _format;} 86
} 87
88
private int _decimals; 89
/// <summary> 90
/// 小数点位数 91
/// </summary> 92
[Description("小数点位数"),Bindable(true), Category("Behavior"), DefaultValue(0)] 93
public int Decimals 94
{ 95
set { _decimals = value;} 96
get { return _decimals;} 97
} 98
99
private bool _allowNegative=true; 100
/// <summary> 101
/// 是否负数 102
/// </summary> 103
[Description("是否负数"),Bindable(true), Category("Behavior"), DefaultValue(true)] 104
public bool AllowNegative 105
{ 106
set { _allowNegative = value;} 107
get { return _allowNegative;} 108
} 109
110
} 111
} 112





}