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

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 329 330 331 332 333 334 < 335 > 336 337 338 339 340 341 .. 404 >> Следующая


717

Как это работает

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

Переменные строки запроса — это переменные, которые располагаются в URL-адресе после вопросительного знака. В данном случае имеется единственная переменная с именем filename, которая обладает значением 2Q0iQ7i8_i4i9.xmi:

http: //localhoat/WebLog/edit. aHpx?filename=,2Q01Q71B_1419 .xml

А вот следующий URL, напротив, включает в себя две переменные а и ь; переменной а присваивается значение Jack, а переменной ь — Coffee. Переменные отделяются одна от другой символом амперсанда (&):

http: / /anothereerver /page /aspx7a=Jack&b=Co f f ее

Если в метод Page_Load() возвращается значение isPostBack, равное false, то это означает, что данная страница загружается в первый раз. Это предоставляет возможность присвоить в качестве начальных значений свойству Text информацию, которая хранится в файле (часть кода опущена для краткости):

private void Page^Load(object sender. System.EventArgs e)

{

// сохранена ли страница? if(IsPostBack == true)

{

)

else

(

It удалось ли получить имя файла?_________________________________

String filename « Request.tarame['filename* 11 if(filename Is null)

{

Свойство Request.Params, выделенное в приведенном выше коде, может быть использовано для осуществления доступа к параметрам, которые передаются странице. В данном примере мы пытаемся получить и получаем значение параметра filename. Если бы мы щелкнули мышью на ссылке Create new entry, то этот параметр был бы пустым. Поскольку есть параметр, то мы осуществляем загрузку вхождения с диска и обновляем свойство Text каждого управляющего элемента;

// загрузка о&ьекта вхождения...

Entry entry = Global.LoadEntry(filename);

// наполнение его полей...

textTitie.Text = entry.Title;

textDetails.Text = entiy.Details;

)

)

)

Вторая часть этой проблемы возникает при отправке страницы обратно. Снова приходится обращаться к свойству Re<juest.Params, чтобы узнать, есть ли уже какое-либо имя файла. Еслн имеется, то именно его и следует использовать — в таком случае метод save о заменит существующий файл на новый, содержащий все сделанные изменения. Если же имя отсутствует, то метод save() воспользуется
718

Глава 24

текущими датой и временем для создания нового имени (здесь часть кода также опущена):

private void Page_Load(object sender. System.EventArgs e)

<

// сохранена ли страница? if(IsPostBack == true)

{

II создание объекта для нового вхождения. . .

Entry newEntry = new Entry () ;

H есть да у нас имя файла, которое следует использовать?

if (Requeet. Parents [ 'filename'] ]= null)

newEntry. Filename - Request. Par ants (*f ilename' ];

II присваивание значений...

newEntry.Title = textTitle.Text;

newEntry.Details = textDetails.Text;

II сохранение вхождения...

newEntry.Save();

11 вывод списка...

Response.Redirect('default.aspx')

)

Мы научились выводить список вхождений и можем использовать web-сайт для создания новых вхождений и для внесения изменений в уже существующие.

Сортировка вхождений

Последнее созданное вхождение не выводится в самом верху страницы. Однако при традиционном способе работы web-регистраторов первым должно гшводиться вхождение, введенное самым последним.

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

20010718_1318.xml

2001071Э_1003.хт1

20010720_1823.xml

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

Практикум: сортировка вхождений

1. Создайте как минимум два вхождения, воспользовавшись web-инструментом. Уничтожьте существующие XML-файлы, поскольку их имена не отвечают только что обсуждавшемуся формату. Автор создал у себя на компьютере три файла (см. рис, на стр. 719, пперхний).
Приложения ASP.NET 719

Файлы выводятся в алфавитном порядке, т. е. ршш ,ЛЪ1 х]
в порядке, прямо противоположном требуемому. J т. ЕЛ Vs* №«№ Toflft- MSfJ S| 1
J k - -¦ - Щ | ^5«nth ] фа w
2.Откройте редактор кода ];Ad4W: €3
для файла Global.ааах. Найднте метод LoadAllEntries и внесите в него aSz0010717_t607.wnl ^20010718 1419.xml
Предыдущая << 1 .. 329 330 331 332 333 334 < 335 > 336 337 338 339 340 341 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

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

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

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

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