Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 388

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 382 383 384 385 386 387 < 388 > 389 390 391 392 393 394 .. 404 >> Следующая


ListsDropDown.DataBindO ;

If (ListIDI=null)

{

// выбрать элемент DropDown в соответствии с ListID forearch (Listltem item in ListeDropDovm. Items)

if (item.value==HatiD) ' ¦

ListsDropDown.Selectedlndex ¦

ListsDrOpPown.Items.IndexOF(item);

)

ft упорядочить управляете элементы на странице

BindGrid() |

}

)

С правой стороны каждой строки таблицы на странницс Lists.aspx располагалась иконка, которая, при щелчке на ней мышью, переносила пользователя на страницу Subscribers.aspx, чтобы он мог просмотреть всех подписчиков данного списка. Для этого использовалась ссылка на страницу Subscribers.aspx, а в строку запроса в качестве параметра добавлялся идентификатор списка. Далее эта значение извлекается из строки запроса н сохраняется в качестве атрибута элемента, управляющего табличным представлением данных, так как оно будет использоваться В ТОТ МОМеНТ, КОГДа В ЭТОМ КОДС будет ВЫЗЫВаТЬСЯ МеТОД GetSubscri.bersO

для данного списка.

Двигаясь далее, мы обнаружим, что в дополнение к обычному вызову метода BindGridO на этот раз используется раскрывающийся список, который наполняется имеющимися в наличии списками рассылки. Это осуществляется непосредственно
Практический пример 2 — Менеджер рассылки новостей в режиме онлайн___________________________825

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

В метод BindGrido для этой страницы включен некоторый дополнительный код, считывающий идентификатор списка, для которого требуется извлечь подписчиков, и, кроме того, в ней для получения требуемого набора данных (то есть таблицы) используется класс SubscribersDB:

protected void BindGrido (

int ListiD;

П получить значение ListiD из атрибутов Grid if ( S"JbscrSrid, Attributes ['ListiD* J J= null |

ListiD * int. Parse(SubscrGrid,Attributes["ListiD*]); else

ListiD = int,Parse(LiBtsDropDown.Selectedltem.Value);

11 получить всех подписчиков данного листа

NewsMailer.SubscribersDB subscribers = ,

new NewsMailer.SubscribersDB(GetConnString0); Dataview myDV - subscribers.GetSubscribers{

’ ListiD),Tables[Q).DefaultView;

II отсортировать see записи * соотеетствии с

И атрибутом SortExpression DataGris

if ( SubscrGrid.Attributes['SortExpression']!-¦ ';

myDV.Sort = SubscrGrid.Attributes["SortExpression"];

SubscrGrid.DataSource = myDV;

SubscrGrid.DataBind();

) .

Эта функция отвечает за выбор элемента в раскрывающемся списке: protected void ListsDropDown_IndexChanged(ob;jeqt sender, EventArgs e)

( ' -11 загрузить страницу, чтобы показать записи выбранного листа Response.Redirect('Subscribers,aspx?ListID=* +

ListsDropDowi.SelectedlCem.Value) ;

)

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

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

protected void SubscrGrid_PageChanged(object sender, DataGridPageChangedEventArgs e)

¦ f

SubscrGrid.Editltemlndex = -1 AddError.Visible = false;
826

Практический пример

ShowAddNewControls(false);

// изменить текуцу» страницу для чтения данных SubscrGrid.CurrentPageIndex » e.NewPagi ndex;

BindGridО;

В заключение процедура, которая обрабатывает событие, наступающее при иа-жатии кнопки Send Email, передает управление на страницу sendEnail.aspx с идентификатором текущего списка в качестве параметра — точно так же, как это делалось для раскрывающихся списков:

protected void 5endEnmi;i_Clic)c{object sender, EventArgs e)

(

// вернуться к странице, чтобы отослать Snail,

П доба гть значение ListID к QueryString

1 aponse.Redirect(“SendEmail.aspx?ListID=* +

ListDropDown.Selectedltem.Value!i

) '

Отправка элентронной почты подписчикам

Мы достигли критической точки в реализации приложения — теперь требуется разработать и написать код для страницы, которая позволяла бы администратору составлять сообщение, рассылать его всем подписчикам из списка и заносить его в архив в БД для последующего просмотра. Рисунок слева дает представление о том, как это все должно функционировать.

С помощью этой страницы администратор получает возможность создать само сообщение, отправляемое по электронной почте, н задать практически все опции, касающиеся отправки сообщений, которые являются общими для большинства клиентов: СС, ВСС, формат электронного сообщения (простой текст или HTML), приоритет, предмет сообщения и его тело. Кроме того, можно использовать несколько отформатированных специальным образом строк (располагающихся с правой стороны), которые будут автоматически заменяться на соответствующие нм значения для каждого сообщения, отправляемого по электронной почте посредством
Предыдущая << 1 .. 382 383 384 385 386 387 < 388 > 389 390 391 392 393 394 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.