|
https://technet.microsoft.com/en-us/library/ms143221(v=sql.105).aspx |
Опубликован: 14.11.2006 | Уровень: для всех | Доступ: платный
Лекция 14:
Пользовательские и собственные серверные элементы управления
Составные элементы управления
Составные элементы управления наследуются от класса 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 неправильный!"/>
Заключение
Пользовательские и собственные серверные элементы управления — это реализация в ASP .NET передовой концепции компонентного программирования. Они облегчают повторное использование кода.