Сначала в объект Command помещается SQL-запрос на удаление записи, выбранной посетителем в управляющем элементе DataGrid:
DBDelete.CommandText = "Delete from ShoppingCartltems " _
& "Where ShoppingCartltemID = " _
& E.Item.Cells(4).Text
Объект Command использует объект Connection:
DBDelete.Connection = DBConn
DBDelete.Connection.Open
После этого необходимо удалить ненужную запись:
DBDelete.ExecuteNonQuery()
и извлечь остающиеся в корзине покупателя товары:
DBCommand = New OleDbDataAdapter _
("Select ShoppingCartltemID, ProductName, " _
& "Quantity, Price, Shipping From " _
& "ShoppingCartltems Where " _
& "CustomerlD = " & Session("CustomerID") _
& " Order By ProductName" _
, DBConn)
Эти товары помещаются в объект DataSet
DBCommand.Fill(DSPageData, _
"ShoppingCart")
с которым связан управляющий элемент DataGrid:
dgShoppingCart.DataSource = _
DSPageData.Tables("ShoppingCart").DefaultView
dgShoppingCart.DataBind
Теперь можно извлечь общую стоимость товаров, но при этом необходимо учесть, что удаленный посетителем товар мог быть последним товаром в его корзине:
if DSPageData.Tables("ShoppingCart").Rows.Count = 0 Then
В таком случае мы должны обеспечить отображение сообщения
IblPriceTotal.Text = "В Вашей корзине " _
& "нет товаров."
и очистку других элементов Label, содержащих итоговые значения:
IblShippingTotal.Text = ""
IblGrandTotal.Text = ""
Если товар в корзине остался, необходимо рассчитать новые итоговые данные:
DBCommand = New OleDbDataAdapter _
("Select Sum(Price) as PriceSum, " _
& "Sum(Shipping) as ShippingSum From " _
& "ShoppingCartltems Where " _
& "CustomerlD = " & Session("CustomerlD") _
, DBConn)
DBCommand. Fill (.DSPageData, _
"Totals")
и поместить их в соответствующие элементы управления Label:
IblPriceTotal.Text = "Итого:" _
5 FormatCurrency(DSPageData.Tables("Totals"). _
Rows(0).Item("PriceSum"))
IblShippingTotal.Text = "Доставка: " _
6 FormatCurrency(DSPageData.Tables("Totals"). _
Rows(O).Item("ShippingSum"))
IblGrandTotal.Text = "Всего: " _
& FormatCurrency(DSPageData.Tables("Totals"). _
Rows (0) . ItemC'PriceSum") + _
DSPageData.Tables("Totals"). _
Rows(O).Item("ShippingSum"))
Страница Оформление заказа
На странице Оформление заказа посетителю предоставляется возможность внести информацию о себе и отметить заказ как размещенный.
В теле страницы с помощью элемента Label создается заголовок страницы:
<asp:Label
id="lblTitle"
ВогderWidth="7рх"
BorderStyle=7
Width="90%"
Font-Size="25pt"
Font-Name="Arial"
Text=<"CENTER>Оформление закаэа</CENTER>"
runat="server"
/>
Второй элемент управления Label используется для отображения подсказок. Кроме того, с его помощью выводится сообщение об успешном оформлении заказа:
<asp:Label
id="lblMessage"
Font-Bold="True"
Width="90%"
Text="3aпoлнитe каждое поле для оформления заказа."
runat="server"
/>
Остальные элементы управления данной страницы размещаются в элементе управления Panel, что позволяет легко отображать и скрывать их:
<asp:Panel
id="pnlForm"
runat="server"
/>
Далее определяется элемент управления ValidationSummary. С его помощью мы указываем посетителю, какие еще данные ему необходимо внести, когда он, посетитель, пытается заэершить заполнение формы.
<asp:ValidationSummary ID="vsAllErrors"
DisplayMode="BulletList"
ShowMessageBox"Тгuе"
ShowSummary="False"
runat="server"
HeaderText="Нужно заполнить поля:"
Все остальные элементы управления, кроме одного, представляют собой пары, включающие элемент управления TextBox, предназначенный для ввода информации о посетителе:
<asp:TextBox
id="txtFirstName"
Columns="25"
MaxLength="50"
runat=server
/>
|