Книга: C# для профессионалов. Том II
Элемент управления Option
Элемент управления Option
Для начала создадим элементы управления Option, каждый из которых будет содержать имя варианта выбора и количество голосов, поданных за этот вариант выбора. Кроме того, эти элементы управления будут поддерживать кнопки голосования и обрабатывать все сделанные нажатия этих кнопок.
Поэтому нам потребуется:
? Код для свойств Name
и Votes
(хранимых в ViewState
)
? Код инициализации в CreateChildControls()
? Код для обработчика нажатия кнопки
Мы включаем также вспомогательный метод Increment()
, который будет добавлять голос к текущему счету. Этот вспомогательный метод вызывается обработчиком нажатия кнопки.
Нам понадобится также поддержка INamingContainer
, так как мы имеем несколько экземпляров этих элементов управления со своими собственными потомками.
Код класса Option
будет находиться в файле StrawPoll.cs
, который мы должны добавить к проекту вместе со стандартными инструкциями namespace и using
, согласно уже известным нам элементам управления RainbowLabel
. Код будет иметь следующий вид:
public class Option : System.Web.UI.WebControls.WebControl, INamingContainer {
public string Name {
get {
return (string)ViewState["_name"];
}
set {
ViewState["_name"] = value;
}
}
public long Votes {
get {
return (long)ViewState["_votes"];
}
set {
ViewState["_votes"] = value;
}
}
public void Increment() {
ViewState["_votes"] =(long)ViewState["_votes"] + 1;
}
public void Reset() {
ViewState["_votes"] = 0;
}
protected override void CreateChildControls() {
Button btnVote = new Button();
btnVote.Text = "Vote";
btnVote.Click += new System.EventHandler(btnVote_Click);
Controls.Add(btnVote);
}
protected void btnVote_Click(object sender, System.EventArgs e) {
Increment();
}
}
Отметим, что метод Render()
не был здесь переопределен. Это связано с тем, что этот элемент управления имеет одного наследника, кнопку голосования и никакой другой информации для вывода. Поэтому можно использовать значение по умолчанию, которое будет просто изображением кнопки.
- Выбор элемента с помощью переключателя
- 4.2. Элементы управления ComboBox, OptionButton и Frame
- Элемент CheckedListBox
- Элемент управления выборочным опросом
- Свойства и методы объекта HTMLElement, применяемые для работы с элементами управления
- Глава 3 Элементы управления
- Построитель элемента управления StrawPoll
- Основные "рычаги" управления производительностью
- Категорийный менеджмент. Курс управления ассортиментом в рознице
- Создание свободно позиционируемых элементов
- 6.4. Рабочий лист Excel и его структурные элементы
- Appendix D. TCP options