Средства удаления записи

Осталось создать средства удаления ненужных высказываний из таблицы Sentences. Что ж, и такое иногда приходится проделывать...

Чтобы удалить ненужную запись, нам также понадобится серверная страница. Мы поместим на этой странице содержимое удаляемой записи (это хороший тон Web-программирования) и кнопку, запускающую процесс удаления записи. А для перехода на эту страницу мы поместим на странице Sentences.asp еще одну гиперссылку.

Откройте страницу Sentences.asp. Поставьте текстовый курсор в четвертую ячейку второй строки таблицы и наберите текст "Удалить". Выделите только что введенное слово и наберите в поле ввода интернет-адреса редактора свойств такой текст:

DeleteSentence.asp?ID=

Далее переключитесь в режим отображения кода и перетащите из панели Bindings в место, находящееся точно после знака "=", поле ID набора записей. Интернет-адрес гиперссылки примет такой вид:

Мы уже знаем, что означает этот код.

DeleteSentence.asp?ID=<%=(Sentences.Fields.Item("ID").Value)%>

Теперь сохраните и закройте страницу Sentences.asp. Создайте новую серверную страницу, введите в нее поясняющий текст и сохраните под именем DeleteSentence.asp в папке Admin. Но не закрывайте только что созданную страницу — мы ей сейчас займемся.

Сначала нужно создать набор записей, из которого будет взята запись для отображения на этой странице. Этот набор также должен содержать одну-единственную запись, поэтому нам придется задать фильтр по значению поля счетчика ID таблицы sentences, которое должно равняться значению параметра гиперссылки ID, переданному от страницы Sentences.asp. Кроме того, этот набор записей должен быть сложным, аналогичным тому, что мы создали на странице Sentences.asp. Создайте его, а если у вас возникнут затруднения, обратитесь к спасительной главе 17. Текст SQL-запроса будет таков:

SELECT Sentences.ID, Content, Name FROM Sentences, Categories

WHERE Sentences.ID = MMColParam AND Sentences.Category=Categories.ID

Здесь MMCoiParam — имя параметра SQL-запроса, соответствующего параметру гиперссылки ID. Его значение, соответственно, будет

Request.QueryString("ID").

Теперь поместим на страницу динамический текст, привязанный к полю Content набора записей. В следующем абзаце наберем слово "Категория", поставим неразрывный пробел и поместим динамический текст, привязанный к полю Name.

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

Теперь нам нужно создать поведение Delete Record. Для этого выберем одноименный пункт в меню серверных поведений панели Server Behaviors. На экране появится диалоговое окно Delete Record.

Выберите в раскрывающемся списке Connection базу данных, в списке Delete From Table — таблицу, запись которой будет удалена, а в списке Select Record From — набор записей, из которого будет взята запись для отображения ее содержимого на странице. В нашем случае это будет соответственно Library, sentences и Sentences (таблица и набор записей у нас называются одинаково).

В поле ввода Unique Key Column задается поле набора записей, по которому нужная нам запись будет однозначно идентифицироваться. В нашем случае — это ключевое поле ID. Если это числовое поле (а поле ID — числовое), включите флажок Numeric, в противном случае — отключите его.

В раскрывающемся списке Delete By Submitting выбирается кнопка, после нажатия которой произойдет удаление записи.

В поле ввода After Deleting, Go To вводится интернет-адрес страницы, на которую будет осуществлен переход после успешного удаления записи. Введите в него sentences. asp. Вы также можете щелкнуть кнопку Browse и выбрать нужную страницу в диалоговом окне Select File.

После ввода всех данных не забудьте нажать кнопку ОК. Сохраните страницу DclcteSentence.asp и проверьте ее. Введите какую-нибудь запись и попробуйте ее удалить. Если она почему-то не удалится, проверьте, все ли вы сделали правильно.