forked from extnet/Ext.NET
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTextField.cs
More file actions
179 lines (160 loc) · 6.32 KB
/
TextField.cs
File metadata and controls
179 lines (160 loc) · 6.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
/********
* @version : 2.1.1 - Ext.NET Pro License
* @author : Ext.NET, Inc. http://www.ext.net/
* @date : 2012-12-10
* @copyright : Copyright (c) 2007-2012, Ext.NET, Inc. (http://www.ext.net/). All rights reserved.
* @license : See license.txt and http://www.ext.net/license/.
********/
using System.ComponentModel;
using System.Drawing;
using System.Web.UI;
namespace Ext.Net
{
/// <summary>
/// A basic text field. Can be used as a direct replacement for traditional text inputs, or as the base class for more sophisticated input controls (like Ext.form.field.TextArea and Ext.form.field.ComboBox). Has support for empty-field placeholder values (see emptyText).
///
/// Validation
///
/// The Text field has a useful set of validations built in:
///
/// allowBlank for making the field required
/// minLength for requiring a minimum value length
/// maxLength for setting a maximum value length (with enforceMaxLength to add it as the maxlength attribute on the input element)
/// regex to specify a custom regular expression for validation
/// In addition, custom validations may be added:
///
/// vtype specifies a virtual type implementation from Ext.form.field.VTypes which can contain custom validation logic
/// validator allows a custom arbitrary function to be called during validation
/// The details around how and when each of these validation options get used are described in the documentation for getErrors.
///
/// By default, the field value is checked for validity immediately while the user is typing in the field. This can be controlled with the validateOnChange, checkChangeEvents, and checkChangeBuffer configurations. Also see the details on Form Validation in the Ext.form.Panel class documentation.
///
/// Masking and Character Stripping
///
/// Text fields can be configured with custom regular expressions to be applied to entered values before validation: see maskRe and stripCharsRe for details.
/// </summary>
[Meta]
[ToolboxData("<{0}:TextField runat=\"server\" />")]
[DefaultProperty("Text")]
[DefaultEvent("TextChanged")]
[ValidationProperty("Text")]
[ControlValueProperty("Text")]
[ParseChildren(true)]
[PersistChildren(false)]
[SupportsEventValidation]
[ToolboxBitmap(typeof(TextField), "Build.ToolboxIcons.TextField.bmp")]
[Description("Basic text field. Can be used as a direct replacement for traditional text inputs, or as the base class for more sophisticated input controls (like Ext.form.TextArea and Ext.form.ComboBox).")]
public partial class TextField : TextFieldBase, IPostBackEventHandler
{
/// <summary>
///
/// </summary>
[Description("")]
public TextField() { }
/// <summary>
///
/// </summary>
[Description("")]
public TextField(string text)
{
this.Text = text;
}
/// <summary>
///
/// </summary>
[Category("0. About")]
[Description("")]
public override string XType
{
get
{
return "textfield";
}
}
/// <summary>
///
/// </summary>
[Category("0. About")]
[Description("")]
public override string InstanceOf
{
get
{
return "Ext.form.field.Text";
}
}
private TextFieldListeners listeners;
/// <summary>
/// Client-side JavaScript Event Handlers
/// </summary>
[Meta]
[ConfigOption("listeners", JsonMode.Object)]
[Category("2. Observable")]
[NotifyParentProperty(true)]
[PersistenceMode(PersistenceMode.InnerProperty)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
[Description("Client-side JavaScript Event Handlers")]
public TextFieldListeners Listeners
{
get
{
if (this.listeners == null)
{
this.listeners = new TextFieldListeners();
}
return this.listeners;
}
}
private TextFieldDirectEvents directEvents;
/// <summary>
/// Server-side Ajax Event Handlers
/// </summary>
[Meta]
[Category("2. Observable")]
[NotifyParentProperty(true)]
[PersistenceMode(PersistenceMode.InnerProperty)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
[ConfigOption("directEvents", JsonMode.Object)]
[Description("Server-side Ajax Event Handlers")]
public TextFieldDirectEvents DirectEvents
{
get
{
if (this.directEvents == null)
{
this.directEvents = new TextFieldDirectEvents(this);
}
return this.directEvents;
}
}
/* Lifecycle
-----------------------------------------------------------------------------------------------*/
void IPostBackEventHandler.RaisePostBackEvent(string eventArgument)
{
this.RaisePostDataChangedEvent();
}
/* DirectEvent Handler
-----------------------------------------------------------------------------------------------*/
static TextField()
{
DirectEventChange = new object();
}
private static readonly object DirectEventChange;
/// <summary>
/// Server-side DirectEvent handler. Method signature is (object sender, DirectEventArgs e).
/// </summary>
[Description("Server-side DirectEvent handler. Method signature is (object sender, DirectEventArgs e).")]
public event ComponentDirectEvent.DirectEventHandler DirectChange
{
add
{
this.CheckForceId();
this.DirectEvents.Change.Event += value;
}
remove
{
this.DirectEvents.Change.Event -= value;
}
}
}
}