Чтение онлайн

на главную - закладки

Жанры

C# для профессионалов. Том II

Ватсон Карли

Шрифт:

Мы можем сделать также еще одну модификацию в

submitButton_Click
, чтобы гарантировать, что эти данные обновляются, когда добавляются новые записи:

if (queryResult == 1) {

 resultLabel.Text = "Event Added.";

 daEvents =

new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM Events", oleDbConnection1);

 ds.Clear;

 daEvents.Fill(ds, "Events");

 eventTable = ds.Tables["Events"];

 calendar.SelectedDate =

getFreeDate(calendar.SelectedDate.AddDaysd));

 eventDetails1.DataBind;

}

Отметим,

что мы вызываем
DataBind
на
DataGrid
, а не на
this
. Это препятствует обновлению любых данных элементов управления соединения, что было бы не нужно. Все элементы управления соединением данных поддерживают этот метод, который обычно вызывается формой, если вызывается метод верхнего уровня
(this)dataBind
.

Элемент управления

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

Вывод данных с помощью шаблонов

Два других элемента управления выводом данных —

Repeater
и
DataList
, требуют использования шаблонов для форматирования данных для вывода. Шаблонами в смысле ASP.NET являются параметризованные разделы кода HTML, которые используются как элементы вывода в некоторых элементах управления. Они позволяют точно определить, как данные выводятся в браузере, и могут создать без существенных усилий профессионально сделанное представление.

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

Repeater
и
DataList
, является шаблон
<ItemTemplate>
, используемый при выводе каждого элемента данных. Мы объявляем этот шаблон (и все остальные) внутри объявления элемента управления, например:

<asp:DataList Runat="server" ... >

 <ItemTemplate>

 ...

 </ItemTemplate>

</asp:DataList>

Внутри объявлений шаблонов нам нужно будет выводить разделы HTML, включая параметры с данными, связанными с элементом управления. Существует специальный синтаксис, который можно использовать для вывода таких параметров:

<%# expression %>

expression
может быть просто выражением, связывающим параметр со свойством страницы или элемента управления, но, скорее, состоит из выражения
DataBinder.Eval
. Эта полезная функция может использоваться для вывода данных из таблицы, связанной с элементом управления, определяя столбец с помощью следующего синтаксиса:

<%# DataBinder.Eval(Container.DataItem, "ColumnName") %>

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

Полное описание доступных шаблонов дано в следующей таблице:

Шаблон Описание
<ItemTemplate>
Шаблон
используется для элементов списка.
<HeaderTemplate>
Шаблон используется для вывода перед списком.
<FooterTemplate>
Шаблон используется для вывода после списка.
<SeparatorTemplate>
Шаблон используется между элементами списка.
<AlternatingItemTemplate>
Шаблон для альтернативных элементов, способствует проявлению видимости.
<SelectedItemTemplate>
(Только
DataList
) Шаблон используется для выбранных элементов в списке.
<EditItemTemplate>
(Только
DataList
) Шаблон используется для элементов в списке, которые редактируются.

Рассмотрим это на примере. Используем для него запрос существующих данных в

PCSWebApp3
.

Пример

Расширим таблицу вверху страницы, чтобы она содержала

DataList
, выводящий каждое из мероприятий, хранящихся в базе данных. Мы сделаем эти мероприятия выбираемыми, чтобы данные любого мероприятия можно было вывести, щелкая на его имени. Изменения в коде в
PCSWebApp3
показаны ниже:

<tr>

 <td align=middle colSpan=3>

<asp:validationsummary id=validationSummary Runat="server" headertext="Before submitting your request:" />

 </td>

</tr>

 <tr>

<td align-left colSpan=3 width="100%">

<table cellspacing=4>

<tr>

<td width="40%" bgcolor="#ccffcc" >

<asp:DataList Runat="server"

ID="eventDetails2"

OnSelectedIndexChanged="eventDetails2_SelectedIndexChanged" >

<ItemTemplate>

<asp:LinkButton Runat="server" CommandName="Select"

forecolor="#0000ff" ID="Linkbutton1">

<%# DataBinder.Eval(Container.DataItem, "Name") %>

</asp:LinkButton>

<br>

</ItemTemplate>

<SelectedItemTemplate>

<b><%# DataBinder.Eval(Container.DataItem, "Name") %></b>

<br>

</SelectedItemTemplate>

</asp:DataList>

</td>

<td valign="top">

<asp:Label Runat="server" ID="edName"

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

Мастер 6

Чащин Валерий
6. Мастер
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер 6

Инкарнатор

Прокофьев Роман Юрьевич
1. Стеллар
Фантастика:
боевая фантастика
рпг
7.30
рейтинг книги
Инкарнатор

Час Презрения

Сапковский Анджей
4. Ведьмак
Фантастика:
фэнтези
9.29
рейтинг книги
Час Презрения

Убивать чтобы жить 5

Бор Жорж
5. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 5

Зауряд-врач

Дроздов Анатолий Федорович
1. Зауряд-врач
Фантастика:
альтернативная история
8.64
рейтинг книги
Зауряд-врач

Любимая учительница

Зайцева Мария
1. совершенная любовь
Любовные романы:
современные любовные романы
эро литература
8.73
рейтинг книги
Любимая учительница

Прометей: повелитель стали

Рави Ивар
3. Прометей
Фантастика:
фэнтези
7.05
рейтинг книги
Прометей: повелитель стали

Возвышение Меркурия. Книга 14

Кронос Александр
14. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 14

Тайны ордена

Каменистый Артем
6. Девятый
Фантастика:
боевая фантастика
попаданцы
7.48
рейтинг книги
Тайны ордена

Камень. Книга вторая

Минин Станислав
2. Камень
Фантастика:
фэнтези
8.52
рейтинг книги
Камень. Книга вторая

Флеш Рояль

Тоцка Тала
Детективы:
триллеры
7.11
рейтинг книги
Флеш Рояль

Шесть принцев для мисс Недотроги

Суббота Светлана
3. Мисс Недотрога
Фантастика:
фэнтези
7.92
рейтинг книги
Шесть принцев для мисс Недотроги

Звездная Кровь. Изгой

Елисеев Алексей Станиславович
1. Звездная Кровь. Изгой
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Звездная Кровь. Изгой

Последняя Арена 6

Греков Сергей
6. Последняя Арена
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Последняя Арена 6