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

С# - Ватсон К.

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


П присваивание значений... newEntry.Title = textTitle.Text; newEntry.Details = textDetails.Text;

11 сохранение объекта... newEntry.Save ();

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

Response.Redirect('default,aspx');

}

)

15. Откройте редактор HTML для файла Default .aspx.

Добавьте следующий код — часть кода, которую мы добавили к странице ранее, опущена для краткости:

<asp:DataList id-"datalistEntries" runat="server">

</asp:DataLisc>

<br>

<div claae="normal">

<a href«"edit.aapx*>Create a new entry</a> -

</div> '

<br>

<hr color="d000000">

<div class="normal">

<asp:label id="labelcopyright" runat="server¦>(copyright)</asp:label> </div>

ВЭ

ЕЗЖДО

DtsiaeH'a WiLMog

s | JhIt >00 I

ДЯ1ИГ1

n.ed.fii.y, i|)u|t |

ЩВВШЯ

Taii^Tnl’^ tHI - [ dK <*UI1 irt Uh ЮЦ

П|-К-^>*лДЯ

r'ucidar. 11 ЛМ# *№ - *«*# wtrtn*' WQWi

finr *

ССТТП>'А о 0»jr к 11 tttt

С iVKtp UfeNjy MfCrgf\Wf tA-.J,- r || f

d

В папке Entries создан новый файл (см, рис, справа).

' Запустите проект. Щелкните на ссылке Create a new ent^ (создание нового вхождения). На экране появится форма. Заполните ее и щелкните на кнопке Save Changes. Страница перезагрузнтся, новое вхождение станет видимым (см. рис, слева).

|fr&lIn?tp<ub\*IV4WW0!t '.'fVlilD-,1 L-tiTlH:" ¦ — loi xi
’I rHe ЕА ’ V*rrc Pbvate Tents' Mdfc' Ш
» ftjj ^ihjwets л *
Jbfjqbws ?iC:\[netpubliw«woot\Weblo9iiEntncs 3 if,?3.]
AnOtherEntry .xml
тур^ им Dccutr*fit: {гйэ&у^ ^ м / gj™,- utor Л
Приложения ASP.NET

713

-iih*tpr//fo<alkfsl |Wfct|ii4;fnfc:.-npx "-rr-iifi Ы irnirf Г

мЛЛл!

¦J ll ?5 . & * liAu

Dinaell's Wehiog

Create a New Entry

Tits-, Ы1лк

~3

jJ P-ectuir&d

-гг

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

Создание формы в Edit.aapx практически не отличается от создания страницы Defauit.aspx, Для обоих классов было использовано сочетание HTML-кода и редактора.

Прн нажатии кнопки на форме выполняется код, производящий проверку допустимости в соответствии с управляющими элементами, которые были добавлены на странице. Каждый из них был приписан отдельному управляющему элементу Textbox. Прн нажатии кнопки выполняется код, проверяющий все ли элементы заполнены, и если не все, то код выводит сообщение (см. рис, слева).

Если проверка допустимости пройдена успешно, то страница отправляется обратно ASP.NET. В этот момент снова вызывается метод Page_Load(), но есть возможность проверить н убедиться в том, что страница действительно посылалась обратно; для этих целен используется свойство isPostBack:

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

(

it была ли сохранена данная страница? if(IsPostBack == true!

Если страница посылается обратно, то мы создаем новый объект Entry:

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

Entry newEntry = new Entry () ;

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

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

newEntry .Title = textTitie.Text;

newEntry.Detaila = textDetails.Text;

Далее мы требуем от объекта Entry, чтобы он сохранил самого себя (ниже этот вопрос будет рассмотрен более подробно):

// сохранение объекта.. .

newEntry.Save();

После того как вхождение сохранено, мы обращаемся к ASP.NET, с тем чтобы браузер перешел к Defauit.aspx и можно было бы увидеть вновь созданное вхож-денне:

/ / вывод спиеха.. .

Response.Redirect('default.аарх');

Для сохранения вхождения требуется имя файла, которое должно быть уникальным (в противном случае будут затерты другие вхождения), поэтому имя файла составляется с использованием даты и времени, когда вхождение было сохранено:
714

Глава 24

public void Saved (

/ / есть ли у нас имя файла? if(Filename == null)

(

// получение имени файла на основе датм...

Timestamp = DateTime.Now;

Filename = String.Format{*{0;d4){1:d2)(2;d2>__(3:d2){4:d2).xml',

(int)Timestamp.Year, (int)Timestamp.Month,

<int)Timestamp.Day, (int)Timeatamp.Hour,

{int)Timestamp.Minute)j

>

Имя файла сохраняется в виде свойства (причина, по которой мы поступаем именно так, станет очевидной несколько позже), и для того чтобы в действительности сохранить его, необходимо преобразовать имя файла в полный физический путь:

// получение полного имени файла.. .

String filepath = Global.EntryFilePath + *\\' + Filename;

Получив это имя, мы используем объект XmlSerializer для сохранения объекта на диске. Метод сериализации получает в качестве объекта поток, представляющий собой файл, в который будет осуществляться запись, и объект Entry, после чего свойства последнего преобразовываются в XML-строку, т. е. осуществляются действия, прямо противоположные тем, которые перед этим выполнялись функцией Deserialize!):

// создание сериализатора и сохранение...

Fiieinfo fiieinfo = new Fiieinfo(filepath); if(fiieinfo.Exists == true)

fiieinfo.Delete!);

Filestream stream = new Filestream)fiieinfo.FullName, FileMode.Create); XmlSerializer serializer = new XmlSerializer(this.GetType()); serializer.Serialize(stream, this); stream.Close();
Предыдущая << 1 .. 327 328 329 330 331 332 < 333 > 334 335 336 337 338 339 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

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

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

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

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