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

Ватсон Карли

Шрифт:

Мы вызываем эти функции из четырех элементов управления на странице

.aspx
:

 <asp:ImaqeButton Runat="server" ID="clubButton"

ImageUrl="CLUB.BMP" OnClick="clubButton_OnClick" />

 <asp:ImageButton Runat="server" ID="diamondButton"

ImageUrl="DIAMOND.BMP" OnСlick="diamondButton_OnClick" />

 <asp:ImageButton Runat="server" ID="heartButton"

ImageUrl="HEART.BMP" OnClick="heartButton_OnClick" />

 <asp:ImageButton Runat="server" ID="spadeButton"

ImageUrl="SPADE.BMP" OnClick="spadeButton_OnClick" />

</form>

С помощью следующих обработчиков событий:

protected void clubButton_OnClick(object sender, System.Web.UI.ImageClickEventArgs e) {

 myUserControl.Club

}

protected void diamondButton_OnClick(object sender, System.Web.UI.ImageClickEventArgs e) {

 myUserControl.Diamond;

}

protected void heartButton_OnClick(object sender, System.Web.UI.ImageClickEventArgs e) {

 myUserControl.Heart;

}

protected void spadeButton_OnClick(object sender, System.Web.UI.ImageClickEventArgs e) {

 myUserControl.Spade;

}

Теперь мы имеем четыре новые кнопки, которые можно использовать для изменения масти:

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

Теперь, создав элемент управления пользователя, можно использовать его на любой другой странице Web с помощью директивы

<%@ Register %>
и двух файлов исходного кода (
PCSUserC1.ascx
и
PCSUserC1.ascx.cs
), созданных для элемента управления.

Преобразование приложения предварительного заказа мероприятия в элемент управления пользователя

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

.ascx
и
ascx.cs
. Можно даже выйти из положения в некоторых случаях, просто изменяя имя файла на
.ascx
, если поместить весь код C# в этот файл, а не использовать режим "code behind".

Однако в некоторых случаях это невозможно, так как существуют препятствия, которые необходимо рассмотреть, чтобы преобразовать приложение Web из предыдущей главы в элемент управления пользователя.

Это приложение использует переменную уровня приложения для множества данных, которая содержит таблицы данных мероприятий, участников и названий помещений. Если желательно использовать эту переменную таким же образом, нам понадобиться в этом проекте поместить код для извлечения множества данных в файле global.asax. То есть нам еще нужно добавить в проект ссылку Web на требуемую службу Web.

Существуют другие изменения, которые необходимо сделать, чтобы учесть факт, что элемент управления имеет базовый класс

UserControl
, а не
Form
. Например,
UserControl
не имеет коллекции
Validators
, поэтому невозможно просмотреть объекты
Validator
в этой коллекции с помощью кода, который использовался ранее:

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

 foreach (System.Web.UI.WebControls.WebControl validator in this.Validators) {

validator.Enabled = true;

 }

 this.Validate;

 if (this.IsValid) {

...

Вместо этого необходимо использовать следующий подход:

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

 validateEvent.Enabled = true;

 validateRoom.Enabled = true;

 validateName.Enabled = true;

 validateAttendees.Enabled = true;

 validateEvent.Validate;

 validateRoom.Validate;

 validateName.Validate;

 validateAttendees.Validate;

 if (validateAttendees.IsValid && validateEvent.IsValid &&

validateRoom.IsValid && validateName.IsValid) {

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

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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