Когда посетитель впервые начинает просматривать категории, никакой ID на эту страницу не передается:
If Len(Request.QueryString("ProductCategoryID")) = 0 Then
Поэтому мы устанавливаем его равным 1 и считаем, что указанное значение является идентификатором категории Clothes. Учтите, что значение этой переменной придется заменить ID той категории, которую, по вашему мнению, необходимо считать категорией верхнего уровня:
Если посетитель уже выбрал категорию товара в элементе управления DataGrid, то используется переданный на страницу код ID этой категории:
CurrentCategorylD = Request.QueryStringC'ProductCategorylD")
После этого создается подключение к базе данных:
DBConn = New OleDbConnection("Provider=sqloledb;" _
& "server=localhost;" _
& "Initial Catalog=INETC15;" _
& "User Id=°sa;" _
& "Password=yourpassword;")
Затем из базы данных извлекаются все товары текущей категории:
DBCommand = New OleDbData^Vdapter _
("Select ProductID, ProductName, BriefDescription, " _
& "Price From Products Where " _
& "ProductCategorylD = " & CurrentCategorylD _
& " Order By ProductName", DBConn)
Результаты выполнения запроса помещаются в объект DataSet:
DBCommand.Fill(DSPageData, _
"Products")
После этого мы должны связать элемент управления DataGrid с таблицей DataSet:
dgProducts.DataSource - _
DSPageData.Tables("Products").DefaultView
dgProducts.DataBind
К тому же нам следует извлечь перечень всех подкатегорий текущей категории:
DBCommand = New OleDbDataAdapter _
("Select ProductCategorylD, CategoryName, " _
& "CategoryDescription From ProductCategories Where " _
& "ParentCategorylD = " & CurrentCategorylD _
& " Order By CategoryName", DBConn)
Эти данные помещаются в другую таблицу объекта DataSet:
DBCommand.Fill(DSPageData, _
"Categories")
С данной таблицей мы связываем другой управляющий элемент DataGrid:
dgCategories.DataSource = _
DSPageData.Tables("Categories").DefaultView
dgCategories.DataBind
Кроме того, нам необходимо извлечь название текущей категории:
DBCommand = New OleDbDataAdapter _
("Select CategoryName " _
& "From ProductCategories Where " _
& "ProductCategorylD = " & CurrentCategorylD _
, DBConn)
DBCommand.Fill(DSPageData, _
"CategoryName")
Это название помещается в управляющий элемент Label, образующий заголовок:
IblTitle.Text = "<CENTER>"
& DSPageData.Tables("CategoryName"). _
Rows(0).Item("CategoryName") & "</CENTER>"
Страница Товары
Страница Товары предоставляет полную информацию о товаре. Просмотрев ее, посетитель может поместить данный товар в корзину покупателя.
В теле страницы определяется элемент управления Label, благодаря чему название товара может быть представлено в заголовке страницы:
<asp:Label
id="lblTitle"
BorderWidth="7px"
BorderStyle=7
Width="90%"
Font-Size="25pt"
Font-Name="Arial"
runat="server"
/>
Далее определяется элемент управления. HyperLink, который используется для демонстрации маленького изображения товара. Этот элемент управления связан и с полноразмерным изображением товара, появляющимся после щелчка мышью на элементе:
<asp:HyperLink
id=°"hyplcon"
runat="seryer"
Text="Щелкните для увеличения изображения"
BorderWidth="7px"
BorderStyle=7
/>
|