Вход/Регистрация
C# для профессионалов. Том II
вернуться

Ватсон Карли

Шрифт:

namespace PCSUserCWebAppl {

 ...

 public enum suit {

club, diamond, heart, spade

 }

 ...

}

Для класса

PCSUserC1
требуется переменная-член для хранения типа данных suit (масть) —
currentSuit
:

public class PCSUserC1 : System.Web.UI.UserControl {

 protected System.Web.UI.WebControls.Image suitPic;

 protected System.Web.UI.WebControls.Label suitLabel;

 protected suit currentSuit;

А также свойство для доступа к этой переменной-члену,

Suit
:

public suit Suit {

 get {

return currentSuit;

 }

 set {

currentSuit = value;

suitPic.ImageUrl = currentSuit.ToString + ".bmp";

suitLabel.Text = currentSuit.ToString;

 }

}

Здесь метод доступа

set
задает URL изображения как один из файлов, скопированных ранее, а текст выводит название масти.

Теперь элемент управления закончен, и нам надо добавить код в

WebForm1.aspx
для доступа к этому новому свойству. Используем список переключателей для выбора масти:

<BODY MS_POSITIONING="GridLayout">

 <form method="post" runat="server">

<PCS:UserC1 Runat="server" id="myUserControl" />

<asp:RadioButtonList Runat="server" ID="suitList" autopostback="True">

<asp:ListItem Value="club" Selected="True">Club</asp:ListItem>

<asp:ListItem Value="diamond">Diamond</asp:ListItem>

<asp:ListItem Value="heart">Heart</asp:ListItem>

<asp:ListItem Value="spade">Spade</asp:ListItem>

</asp:RadioButtonList>

 </form>

</BODY>

Нам нужно также добавить обработчик событий для события списка

SelectedIndexChanged
, который мы можем сделать просто с помощью двойного щелчка мышью на элементе управления в графическом представлении.

Отметим, что нужно задать свойство autopostback этого списка как

true
, так как обработчик события
suitList_SelectedIndexChanged
не будет выполняться на сервере, если обратная отправка не задана, и этот элемент управления не включает обратную отправку по умолчанию.

Для метода

suitList_SelectedIndexChanged
требуется следующий код в
WebForm1.aspx.cs
:

protected void suitList_SelectedIndexChanged(object sender, System.EventArgs e) {

 MyUserControl.Suit = (suit)Enum.Parse(typeof(suit), suitList.SelectedItem.Value);

}

Мы знаем, что атрибуты

value
элементов
<ListItem>
представляют допустимые значения перечисления
suit
, которое было определено ранее, поэтому мы анализируем их просто как типы перечислений (у нас здесь то же пространство имен, поэтому нам не нужно переопределять тип) и используем их как значения свойства
Suit
элемента управления пользователя. Мы преобразуем возвращаемый тип
object
в
suit
с помощью простого синтаксиса преобразования типов, и это невозможно сделать неявно.

Не нужно это усложнять, просто определим одно значение с помощью атрибута

Suit
формы Web, например:

<PCS:UserC1 Runat="server" id="myUserControl" Suit="diamond" />

Процессор ASP.NET достаточно разумен, чтобы получить правильный элемент перечисления из предоставленной строки:

Теперь можно изменять масть при выполнении этого приложения Web:

Затем мы зададим для элемента управления несколько методов. Это снова сделать несложно, нам нужно только добавить методы в класс

PCSUserC1
:

public void Club {

 Suit = suit.club;

}

public void Diamond {

 Suit = suit.diamond;

}

public void Heart {

 Suit = suit.heart;

}

public void Spade {

 Suit = suit.spade;

}

Эти четыре метода —

Club
,
Diamond
,
Heart
и
Spade
— изменяют выведенную на экран масть на ту, которая была указана.

  • Читать дальше
  • 1
  • ...
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: