Основы ASP.NET 2.0

       

Составные элементы управления


Составные элементы управления наследуются от класса Composite Control. Этот элемент представляет собой объединение текстовой строки с валидатором, который проверяет ее значение на соответствие шаблону адреса электронной почты. EnsureChildControls — это метод, который проверяет, существуют ли вложенные элементы. Если нет, вызывается метод CreateChildControl: [DefaultProperty("Text")]

[ToolboxData("<{0}:EmailTextBox runat=server></{0}:EmailTextBox>")] public class EmailTextBox : CompositeControl, INamingContainer { private TextBox textBox; private RegularExpressionValidator validator; [Bindable(true)] [Category("Appearance")] [DefaultValue("")] [Localizable(true)] [Themeable(false)] public string Text { get { EnsureChildControls(); return textBox.Text; } set { EnsureChildControls(); textBox.Text = value; } } [Themeable(false)] public string ErrorMessage { get { EnsureChildControls(); return validator.ErrorMessage; } set { EnsureChildControls(); validator.ErrorMessage = value; } } public override ControlCollection Controls { get { EnsureChildControls(); return base.Controls; } } protected override void CreateChildControls() { Controls.Clear();

textBox = new TextBox(); validator = new RegularExpressionValidator();

Controls.Add(validator); Controls.Add(textBox);

textBox.ID = "Email1"; validator.ControlToValidate = textBox.ID; validator.ValidationExpression=@"\w+([-+.']\w+)*@\w+([ -.]\w+)*\.\w+([-.]\w+)*"; } }

У элемента управления EmailTextBox имеются свойства Text и ErrorMessage, которые можно определять на страницах aspx.

<cc1:EmailTextBox ID="EmailTextBox1" runat="server" Text="Hello" ErrorMessage="Адрес E-mail неправильный!"/>



Содержание раздела