Microsoft KB Archive/910309: Difference between revisions
From BetaArchive Wiki
(importing KB archive) |
m (Text replacement - "<" to "<") |
||
Line 58: | Line 58: | ||
=== Browse.aspx === | === Browse.aspx === | ||
<pre class="codesample"> | <pre class="codesample"><%@ Page Description="Browse Page" CodePage="65001" Debug="true"%> | ||
<%@Import Namespace="System.Data"%> | |||
<%@Import Namespace="System.Globalization"%> | |||
<%@Import Namespace="System.Resources"%> | |||
<%@Import Namespace="System.Threading"%> | |||
<%@Import Namespace="catalogsitelet"%> | |||
<%@Import Namespace="Microsoft.CommerceServer.Runtime"%> | |||
<%@Import Namespace="Microsoft.CommerceServer.Runtime.Catalog"%> | |||
<%@Import Namespace="Microsoft.CommerceServer.Runtime.Configuration"%> | |||
<%@Import Namespace="Microsoft.CommerceServer.Runtime.Diagnostics"%> | |||
<%@Register TagPrefix="Localized" TagName="Footer" src="footer.ascx" %> | |||
<!--------------------------------------------------------------------- | |||
-- File: browse.aspx | -- File: browse.aspx | ||
-- | -- | ||
Line 90: | Line 90: | ||
-- PARTICULAR PURPOSE. | -- PARTICULAR PURPOSE. | ||
----------------------------------------------------------------------> | ----------------------------------------------------------------------> | ||
<HTML> | |||
<HEAD> | |||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | |||
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0"> | |||
<meta name="CODE_LANGUAGE" Content="VB"> | |||
<meta name="vs_defaultClientScript" content="JavaScript (ECMAScript)"> | |||
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> | |||
<script runat="Server" Language="VB"> | |||
Private rm As ResourceManager | Private rm As ResourceManager | ||
Private strLanguage As String = Nothing | Private strLanguage As String = Nothing | ||
Line 168: | Line 168: | ||
CategoryListing.Visible = True | CategoryListing.Visible = True | ||
CatName.Text = rm.GetString(Utility.browseChildCategories) & " " & dispCategory | CatName.Text = rm.GetString(Utility.browseChildCategories) & " " & dispCategory | ||
Seprator.InnerHtml = " | Seprator.InnerHtml = "<BR>" | ||
Else | Else | ||
CatName.Visible = False | CatName.Visible = False | ||
Line 192: | Line 192: | ||
categories = catalog.GetCategory(category).GetChildCategories | categories = catalog.GetCategory(category).GetChildCategories | ||
End Sub | End Sub | ||
</script> | |||
<title> | |||
<%=rm.GetString(Utility.browsePageTitle) &" "& catDisplayName%> | |||
</title> | |||
<LINK REL="stylesheet" TYPE="text/css" HREF="sitelet.css"> | |||
</HEAD> | |||
<body> | |||
<DIV CLASS="Heading"> | |||
<%= rm.GetString(Utility.browsePageTitle) &" "& catDisplayName%> | |||
</DIV> | |||
<BR> | |||
<BR> | |||
<form id="browse" method="post" runat="server"> | |||
<TABLE CELLPADDING="4" CELLSPACING="0" BORDER="0" WIDTH="85%"> | |||
<TR> | |||
<TD VALIGN="top" BGCOLOR="silver" WIDTH='<%=rm.GetString("Width")%>'> | |||
<asp:Repeater id="RootCategoryListing" OnItemCommand="RootCategoryListing_ItemCommand" runat="server"> | |||
<HeaderTemplate> | |||
<B> | |||
<%= rm.GetString(Utility.browsePageSubTitle)%> | |||
</B> | |||
<BR> | |||
</HeaderTemplate> | |||
<ItemTemplate> | |||
<asp:LinkButton id="SelectCategoryBtn" CommandName="Select" CommandArgument='<%# CType(Container.DataItem, DataRowView)("CategoryName") & "&" & CType(Container.DataItem, DataRowView)("DisplayName") %>' runat="server"> | |||
<%# DataBinder.Eval(Container.DataItem, "DisplayName") %> | |||
</asp:LinkButton> | |||
</ItemTemplate> | |||
<SeparatorTemplate> | |||
<BR> | |||
</SeparatorTemplate> | |||
</asp:Repeater> | |||
</TD> | |||
<TD VALIGN="top"> | |||
<b> | |||
<asp:Label id="CatName" runat="server" /> | |||
</b> | |||
<asp:Repeater id="CategoryListing" OnItemCommand="RootCategoryListing_ItemCommand" runat="server"> | |||
<HeaderTemplate> | |||
<BR> | |||
</HeaderTemplate> | |||
<ItemTemplate> | |||
<asp:LinkButton id="SelectCategory" CommandName="Select" CommandArgument='<%# CType(Container.DataItem, DataRowView)("CategoryName") & "&" & CType(Container.DataItem, DataRowView)("DisplayName") %>' runat="server"> | |||
<%# DataBinder.Eval(Container.DataItem, "DisplayName") %> | |||
</asp:LinkButton> | |||
</ItemTemplate> | |||
<SeparatorTemplate> | |||
<BR> | |||
</SeparatorTemplate> | |||
</asp:Repeater> | |||
<DIV id="Seprator" runat="server" /> | |||
<b> | |||
<asp:Label id="ProdName" runat="server" /> | |||
</b> | |||
<asp:Repeater id="ProductListing" OnItemCommand="ProductListing_ItemCommand" runat="server"> | |||
<HeaderTemplate> | |||
<BR> | |||
</HeaderTemplate> | |||
<ItemTemplate> | |||
<asp:LinkButton id="SelectProductBtn" CommandName="Select" CommandArgument='<%# CType(Container.DataItem, DataRowView)("ProductID") %>' runat="server"> | |||
<%# DataBinder.Eval(Container.DataItem, "Name") %> | |||
<br> | |||
</asp:LinkButton> | |||
<asp:Label id="Describe" runat="server"> | |||
<%# DataBinder.Eval(Container.DataItem, "description") %> | |||
</asp:Label> | |||
</ItemTemplate> | |||
<SeparatorTemplate> | |||
<BR> | |||
<BR> | |||
</SeparatorTemplate> | |||
</asp:Repeater> | |||
</TD> | |||
</TR> | |||
</TABLE> | |||
<Localized:Footer runat="server" ID="Footer" /> | |||
</form> | |||
</body> | |||
</HTML></pre> | |||
=== Default.aspx === | === Default.aspx === | ||
<pre class="codesample"> | <pre class="codesample"><%@Page Description="Default Page" CodePage="65001" %> | ||
<%@Import Namespace="catalogsitelet"%> | |||
<%@Import Namespace="System.Threading"%> | |||
<%@Import Namespace="System.Resources"%> | |||
<%@Import Namespace="System.Globalization"%> | |||
<!--------------------------------------------------------------------- | |||
-- File: Default.aspx | -- File: Default.aspx | ||
-- | -- | ||
Line 299: | Line 299: | ||
-- PARTICULAR PURPOSE. | -- PARTICULAR PURPOSE. | ||
----------------------------------------------------------------------> | ----------------------------------------------------------------------> | ||
<HTML> | |||
<HEAD> | |||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | |||
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0"> | |||
<meta name="CODE_LANGUAGE" Content="VB"> | |||
<meta name="vs_defaultClientScript" content="JavaScript (ECMAScript)"> | |||
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> | |||
<script runat="Server" Language="VB"> | |||
Private rm As ResourceManager | Private rm As ResourceManager | ||
Line 340: | Line 340: | ||
End If | End If | ||
End Sub | End Sub | ||
</script> | |||
<title> | |||
<%=rm.GetString(Utility.siteletTitle)%> | |||
</title> | |||
<LINK REL="stylesheet" TYPE="text/css" HREF="sitelet.css"> | |||
</HEAD> | |||
<body MS_POSITIONING="GridLayout"> | |||
<DIV CLASS="Heading"> | |||
<%= rm.GetString(Utility.siteletTitle)%> | |||
</DIV> | |||
<BR> | |||
<DIV CLASS="H1"> | |||
<%= rm.GetString(Utility.siteletSubTitle)%> | |||
</DIV> | |||
<BR> | |||
<form id="Languages" method="post" runat="server"> | |||
<UL> | |||
<LI> | |||
<asp:Hyperlink id="English" Text="English" runat="server" /> | |||
</LI> | |||
<LI> | |||
<asp:Hyperlink id="German" Text="German" runat="server" /> | |||
</LI> | |||
<LI> | |||
<asp:Hyperlink id="French" Text="French" runat="server" /> | |||
</LI> | |||
<LI> | |||
<asp:Hyperlink id="Japanese" Text="Japanese" runat="server" /> | |||
</LI> | |||
</UL> | |||
</form> | |||
</body> | |||
</HTML></pre> | |||
=== Footer.ascx === | === Footer.ascx === | ||
<pre class="codesample"> | <pre class="codesample"><%@Import Namespace="System.Globalization"%> | ||
<%@Import Namespace="System.Resources"%> | |||
<%@Import Namespace="catalogsitelet" %> | |||
<%@ Control %> | |||
<!--------------------------------------------------------------------- | |||
-- File: footer.ascx | -- File: footer.ascx | ||
-- | -- | ||
Line 400: | Line 400: | ||
-- PARTICULAR PURPOSE. | -- PARTICULAR PURPOSE. | ||
----------------------------------------------------------------------> | ----------------------------------------------------------------------> | ||
<script runat="server" language="VB"> | |||
Private strLanguage As String = Nothing | Private strLanguage As String = Nothing | ||
Line 431: | Line 431: | ||
End Set | End Set | ||
End Property | End Property | ||
</script> | |||
<asp:Panel runat="server"> | |||
<BR> | |||
<asp:Hyperlink id="Home" Text="Home" runat="server" /> | |||
| | | | ||
<asp:Hyperlink id="Browse" Text="Browse" runat="server" /> | |||
| | | | ||
<asp:Hyperlink id="FTSearch" Text="Full Text Search" runat="server" /> | |||
| | | | ||
<asp:Hyperlink id="PropSearch" Text="Property Search" runat="server" /> | |||
</asp:Panel></pre> | |||
=== Ftsearch.aspx === | === Ftsearch.aspx === | ||
<pre class="codesample"> | <pre class="codesample"><%@ Page Description="Localized Page" CodePage="65001" %> | ||
<%@Import Namespace="System.Globalization"%> | |||
<%@Import Namespace="System.Resources"%> | |||
<%@Import Namespace="System.Threading"%> | |||
<%@Import Namespace="System.Data"%> | |||
<%@Import Namespace="catalogsitelet"%> | |||
<%@Import Namespace="Microsoft.CommerceServer.Runtime"%> | |||
<%@Import Namespace="Microsoft.CommerceServer.Runtime.Catalog"%> | |||
<%@Import Namespace="Microsoft.CommerceServer.Runtime.Configuration"%> | |||
<%@Import Namespace="Microsoft.CommerceServer.Runtime.Diagnostics"%> | |||
<%@Register TagPrefix="Localized" TagName="Footer" src="footer.ascx" %> | |||
<!--------------------------------------------------------------------- | |||
-- File: ftsearch.aspx | -- File: ftsearch.aspx | ||
-- | -- | ||
Line 476: | Line 476: | ||
-- PARTICULAR PURPOSE. | -- PARTICULAR PURPOSE. | ||
----------------------------------------------------------------------> | ----------------------------------------------------------------------> | ||
<HTML> | |||
<HEAD> | |||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | |||
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0"> | |||
<meta name="CODE_LANGUAGE" Content="VB"> | |||
<meta name="vs_defaultClientScript" content="JavaScript (ECMAScript)"> | |||
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> | |||
<script runat="Server" Language="VB"> | |||
Private rm As ResourceManager | Private rm As ResourceManager | ||
Private strLanguage As String = Nothing | Private strLanguage As String = Nothing | ||
Line 540: | Line 540: | ||
Dim searchResult As DataSet = FreeTextSearch(searchText, startPage, totalRecords) | Dim searchResult As DataSet = FreeTextSearch(searchText, startPage, totalRecords) | ||
If 0 | If 0 < searchResult.Tables(0).Rows.Count Then | ||
rptSearchResult.Visible = True | rptSearchResult.Visible = True | ||
rptSearchResult.DataSource = searchResult | rptSearchResult.DataSource = searchResult | ||
Line 559: | Line 559: | ||
Paging.DataBind | Paging.DataBind | ||
Paging.Visible = True | Paging.Visible = True | ||
Seprator.InnerHtml = " | Seprator.InnerHtml = "<BR>" | ||
Pages.Text = rm.GetString(Utility.ftSearchPage) | Pages.Text = rm.GetString(Utility.ftSearchPage) | ||
End If | End If | ||
Line 576: | Line 576: | ||
'If products found | 'If products found | ||
If 0 | If 0 < searchResult.Tables(0).Rows.Count Then | ||
rptSearchResult.Visible = True | rptSearchResult.Visible = True | ||
rptSearchResult.DataSource = searchResult | rptSearchResult.DataSource = searchResult | ||
rptSearchResult.DataBind | rptSearchResult.DataBind | ||
Seprator.InnerHtml = " | Seprator.InnerHtml = "<BR>" | ||
Pages.Text = rm.GetString(Utility.ftSearchPage) | Pages.Text = rm.GetString(Utility.ftSearchPage) | ||
Matches.Text = totalRecords.ToString & " " & rm.GetString(Utility.ftSearchTotal) | Matches.Text = totalRecords.ToString & " " & rm.GetString(Utility.ftSearchTotal) | ||
Line 606: | Line 606: | ||
Response.Redirect(rm.GetString(Utility.productPageUrl) & "?" & Utility.languageLabel & "=" & strLanguage & "&" & Utility.productID & "=" & CType(args.CommandArgument, String)) | Response.Redirect(rm.GetString(Utility.productPageUrl) & "?" & Utility.languageLabel & "=" & strLanguage & "&" & Utility.productID & "=" & CType(args.CommandArgument, String)) | ||
End Sub | End Sub | ||
</script> | |||
<title> | |||
<%=rm.GetString(Utility.ftPageTitle) & " " & catDisplayName%> | |||
</title> | |||
<LINK REL="stylesheet" TYPE="text/css" HREF="sitelet.css"> | |||
</HEAD> | |||
<body> | |||
<DIV CLASS="Heading"> | |||
<%= rm.GetString(Utility.ftPageTitle) & " " & catDisplayName%> | |||
</DIV> | |||
<form id="ftsearch" method="post" runat="server"> | |||
<asp:TextBox id="txtSearchText" runat="server"></asp:TextBox> | |||
<input type=text style="visibility:hidden" runat="server"/> | |||
<BR> | |||
<asp:Button id="Search" runat="server" Text="Search" OnClick="SearchButton_Click"></asp:Button> | |||
<br> | |||
<br> | |||
<asp:Label id="Matches" runat="server" /> | |||
<br> | |||
<br> | |||
<asp:Repeater id="rptSearchResult" OnItemCommand="ProductListing_ItemCommand" runat="server"> | |||
<ItemTemplate> | |||
<asp:LinkButton id="SelectProductBtn" CommandName="Select" CommandArgument='<%# CType(Container.DataItem, DataRowView)("ProductID") %>' runat="server"> | |||
<%# DataBinder.Eval(Container.DataItem, "Name") %> | |||
</asp:LinkButton> | |||
&nbsp; ( | &nbsp; ( | ||
<asp:Label id="Describe" runat="server"> | |||
<%# DataBinder.Eval(Container.DataItem, "description") %> | |||
</asp:Label> | |||
) | ) | ||
</ItemTemplate> | |||
<SeparatorTemplate> | |||
<BR> | |||
<br> | |||
</SeparatorTemplate> | |||
</asp:Repeater> | |||
<DIV id="Seprator" runat="server" /> | |||
<asp:Label id="Pages" runat="server" /> | |||
<asp:Repeater id="Paging" OnItemCommand="PageClick_ItemCommand" runat="server"> | |||
<ItemTemplate> | |||
<asp:LinkButton id="PageClick" CommandName="Select" CommandArgument='<%# CType(Container.DataItem, DataRowView)("Clause") %>' runat="server"> | |||
<%# DataBinder.Eval(Container.DataItem, "Page") %> | |||
</asp:LinkButton> | |||
</ItemTemplate> | |||
</asp:Repeater> | |||
<Localized:Footer runat="server" id="Footer" /> | |||
</form> | |||
</body> | |||
</HTML></pre> | |||
=== Global.ascx === | === Global.ascx === | ||
<pre class="codesample"> | <pre class="codesample"><%@Import namespace="System"%> | ||
<%@Import namespace="System.Collections"%> | |||
<%@Import namespace="System.ComponentModel"%> | |||
<%@Import namespace="System.Web"%> | |||
<%@Import namespace="System.Web.SessionState"%> | |||
<%@Import namespace="Microsoft.CommerceServer.Runtime"%> | |||
<%@Import namespace="System.IO"%> | |||
<%@Import namespace="System.Resources"%> | |||
<%@Import namespace="System.Threading"%> | |||
<%@Import namespace="System.Globalization"%> | |||
<script runat="server" language="VB"> | |||
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs) | Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs) | ||
Line 691: | Line 691: | ||
End Sub | End Sub | ||
</script></pre> | |||
=== Main.aspx === | === Main.aspx === | ||
<pre class="codesample"> | <pre class="codesample"><%@Page Description="Localized Page" CodePage="65001" %> | ||
<%@Import Namespace="catalogsitelet"%> | |||
<%@Import Namespace="System.Resources"%> | |||
<%@Import Namespace="System.Threading"%> | |||
<%@Import Namespace="System.Globalization"%> | |||
<%@Import Namespace="System.Data"%> | |||
<%@Import Namespace="Microsoft.CommerceServer.Runtime"%> | |||
<%@Import Namespace="Microsoft.CommerceServer.Runtime.Catalog"%> | |||
<%@Import Namespace="Microsoft.CommerceServer.Runtime.Configuration"%> | |||
<%@Import Namespace="Microsoft.CommerceServer.Runtime.Diagnostics"%> | |||
<%@Register TagPrefix="Localized" TagName="Footer" src="footer.ascx" %> | |||
<!--------------------------------------------------------------------- | |||
-- File: main.aspx | -- File: main.aspx | ||
-- | -- | ||
Line 726: | Line 726: | ||
-- PARTICULAR PURPOSE. | -- PARTICULAR PURPOSE. | ||
----------------------------------------------------------------------> | ----------------------------------------------------------------------> | ||
<HTML> | |||
<HEAD> | |||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | |||
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0"> | |||
<meta name="CODE_LANGUAGE" Content="VB"> | |||
<meta name="vs_defaultClientScript" content="JavaScript (ECMAScript)"> | |||
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> | |||
<script runat="Server" Language="VB"> | |||
Private rm As ResourceManager | Private rm As ResourceManager | ||
Private strLanguage As String = Nothing | Private strLanguage As String = Nothing | ||
Line 774: | Line 774: | ||
End If | End If | ||
End Sub | End Sub | ||
</script> | |||
<title> | |||
<%=rm.GetString(Utility.pageTitle)%> | |||
</title> | |||
<LINK REL="stylesheet" TYPE="text/css" HREF="sitelet.css"> | |||
</HEAD> | |||
<body> | |||
<DIV CLASS="Heading"> | |||
<%= rm.GetString(Utility.pageTitle)%> | |||
</DIV> | |||
<BR> | |||
<BR> | |||
<form id="main" method="post" runat="server"> | |||
<ul> | |||
<li> | |||
<asp:Hyperlink id="BrowseCat" Text="Browse the Catalog" runat="server" /> | |||
</li> | |||
<li> | |||
<asp:Hyperlink id="FullTextSearch" Text="Perform a Full Text Search" runat="server" /> | |||
</li> | |||
<li> | |||
<asp:Hyperlink id="PropertySearch" Text="Perform a Property Search" runat="server" /> | |||
</li> | |||
</ul> | |||
<Localized:Footer runat="Server" ID="Footer" /> | |||
</form> | |||
</body> | |||
</HTML></pre> | |||
=== Noresource.aspx === | === Noresource.aspx === | ||
<pre class="codesample"> | <pre class="codesample"><%@ Page %> | ||
<!--------------------------------------------------------------------- | |||
-- File: noresource.aspx | -- File: noresource.aspx | ||
-- | -- | ||
Line 826: | Line 826: | ||
-- PARTICULAR PURPOSE. | -- PARTICULAR PURPOSE. | ||
----------------------------------------------------------------------> | ----------------------------------------------------------------------> | ||
<html> | |||
<head> | |||
<title>Server Error</title> | |||
</head> | |||
<body> | |||
<h1>Server Error</h1> | |||
Localized resources were not available. | Localized resources were not available.<p> | ||
Please contact the administrator. | Please contact the administrator. | ||
</body> | |||
</html></pre> | |||
=== Product.aspx === | === Product.aspx === | ||
<pre class="codesample"> | <pre class="codesample"><%@ Page Description="Localized Page" CodePage="65001" %> | ||
<%@Import Namespace="System.Globalization"%> | |||
<%@Import Namespace="System.Resources"%> | |||
<%@Import Namespace="System.Threading"%> | |||
<%@Import Namespace="System"%> | |||
<%@Import Namespace="catalogsitelet"%> | |||
<%@Import Namespace="Microsoft.CommerceServer.Runtime"%> | |||
<%@Import Namespace="Microsoft.CommerceServer.Runtime.Catalog"%> | |||
<%@Import Namespace="Microsoft.CommerceServer.Runtime.Configuration"%> | |||
<%@Import Namespace="Microsoft.CommerceServer.Runtime.Diagnostics"%> | |||
<%@Import Namespace="System.Data"%> | |||
<%@Register TagPrefix="Localized" TagName="Footer" src="footer.ascx" %> | |||
<!--------------------------------------------------------------------- | |||
-- File: product.aspx | -- File: product.aspx | ||
-- | -- | ||
Line 873: | Line 873: | ||
-- PARTICULAR PURPOSE. | -- PARTICULAR PURPOSE. | ||
----------------------------------------------------------------------> | ----------------------------------------------------------------------> | ||
<HTML> | |||
<HEAD> | |||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | |||
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0"> | |||
<meta name="CODE_LANGUAGE" Content="VB"> | |||
<meta name="vs_defaultClientScript" content="JavaScript (ECMAScript)"> | |||
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> | |||
<script runat="Server" Language="VB"> | |||
Private rm As ResourceManager | Private rm As ResourceManager | ||
Private strLanguage As String = Nothing | Private strLanguage As String = Nothing | ||
Line 1,014: | Line 1,014: | ||
End Sub | End Sub | ||
</script> | |||
<title> | |||
<%=rm.GetString(Utility.productPageTitle) & " " & productDisplayName%> | |||
</title> | |||
<LINK REL="stylesheet" TYPE="text/css" HREF="sitelet.css"> | |||
</HEAD> | |||
<body> | |||
<DIV CLASS="Heading"> | |||
<%= rm.GetString(Utility.productPageTitle) & " " & productDisplayName%> | |||
</DIV> | |||
<BR> | |||
<BR> | |||
<form id="Productform" method="post" runat="server"> | |||
<asp:Table id="Product" runat="server" Width="50%" cellpadding="2" cellspacing="0" Height="175px"> | |||
<asp:TableRow> | |||
<asp:TableCell ColumnSpan="100"> | |||
<B> | |||
<asp:Label ID="ProductIDLabel" Runat="server" /> | |||
</B> | |||
<br> | |||
<asp:Label ID="IntroDateLabel" Runat="server" /> | |||
<asp:Label ID="IntroDate" Runat="server" /> | |||
<br> | |||
</asp:TableCell> | |||
</asp:TableRow> | |||
<asp:TableRow> | |||
<asp:TableCell ColumnSpan="70"> | |||
<asp:Image id="ProductImage" runat="server"></asp:Image> | |||
</asp:TableCell> | |||
<asp:TableCell ColumnSpan="30"> | |||
<b> | |||
<asp:Label ID="PriceLabel" Runat="server" /> | |||
</b> | |||
<asp:Label ID="Price" Runat="server" /> | |||
<br> | |||
<b> | |||
<asp:Label ID="ProductCodeLabel" Runat="server" /> | |||
</b> | |||
<asp:Label ID="ProductCode" Runat="server" /> | |||
<br> | |||
</asp:TableCell> | |||
</asp:TableRow> | |||
<asp:TableRow> | |||
<asp:TableCell ColumnSpan="100"> | |||
<B> | |||
<asp:Label ID="Variants" Runat="server" /> | |||
</B> | |||
<br> | |||
<asp:Repeater id="VariantListing" runat="server"> | |||
<ItemTemplate> | |||
<asp:Label id="Color" runat="server"> | |||
<%# DataBinder.Eval(Container.DataItem, "ProductColor") %> | |||
</asp:Label> | |||
</ItemTemplate> | |||
<SeparatorTemplate> | |||
<BR> | |||
</SeparatorTemplate> | |||
</asp:Repeater> | |||
<BR> | |||
</asp:TableCell> | |||
</asp:TableRow> | |||
<asp:TableRow> | |||
<asp:TableCell ColumnSpan="100"> | |||
<B> | |||
<asp:Label ID="DescribeLabel" Runat="server" /> | |||
</B> | |||
<BR> | |||
<asp:Label ID="Description" Runat="server" /> | |||
<BR> | |||
</asp:TableCell> | |||
</asp:TableRow> | |||
<asp:TableRow> | |||
<asp:TableCell ColumnSpan="100"> | |||
<B> | |||
<asp:Label ID="SizeLabel" Runat="server" /> | |||
</B> | |||
<asp:Label ID="Size" Runat="server" /> | |||
<BR> | |||
</asp:TableCell> | |||
</asp:TableRow> | |||
</asp:Table> | |||
<asp:Label ID="AvailableLabel" Runat="server" /> | |||
<Localized:Footer runat="server" id="Footer" /> | |||
</form> | |||
</body> | |||
</HTML></pre> | |||
=== Propsearch.aspx === | === Propsearch.aspx === | ||
<pre class="codesample"> | <pre class="codesample"><%@Register TagPrefix="Localized" TagName="Footer" src="footer.ascx" %> | ||
<%@Import Namespace="System.Data"%> | |||
<%@Import Namespace="Microsoft.CommerceServer.Runtime"%> | |||
<%@Import Namespace="Microsoft.CommerceServer.Runtime.Catalog"%> | |||
<%@Import Namespace="Microsoft.CommerceServer.Runtime.Configuration"%> | |||
<%@Import Namespace="Microsoft.CommerceServer.Runtime.Diagnostics"%> | |||
<%@Import Namespace="catalogsitelet"%> | |||
<%@Import Namespace="System.Threading"%> | |||
<%@Import Namespace="System.Resources"%> | |||
<%@Import Namespace="System.Globalization"%> | |||
<%@ Page Description="Localized Page" CodePage="65001" %> | |||
<!--------------------------------------------------------------------- | |||
-- File: propsearch.aspx | -- File: propsearch.aspx | ||
-- | -- | ||
Line 1,134: | Line 1,134: | ||
-- PARTICULAR PURPOSE. | -- PARTICULAR PURPOSE. | ||
----------------------------------------------------------------------> | ----------------------------------------------------------------------> | ||
<HTML> | |||
<HEAD> | |||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | |||
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0"> | |||
<meta name="CODE_LANGUAGE" Content="VB"> | |||
<meta name="vs_defaultClientScript" content="JavaScript (ECMAScript)"> | |||
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> | |||
<script runat="Server" Language="VB"> | |||
Private rm As ResourceManager | Private rm As ResourceManager | ||
Private strLanguage As String = Nothing | Private strLanguage As String = Nothing | ||
Line 1,219: | Line 1,219: | ||
'If products found | 'If products found | ||
If Not (searchResult Is Nothing) AndAlso 0 | If Not (searchResult Is Nothing) AndAlso 0 < searchResult.Tables(0).Rows.Count Then | ||
SearchResultRepeater.Visible = True | SearchResultRepeater.Visible = True | ||
SearchResultRepeater.DataSource = searchResult | SearchResultRepeater.DataSource = searchResult | ||
Line 1,237: | Line 1,237: | ||
Paging.DataBind | Paging.DataBind | ||
Paging.Visible = True | Paging.Visible = True | ||
Seprator.InnerHtml = " | Seprator.InnerHtml = "<BR>" | ||
Pages.Text = rm.GetString(Utility.ftSearchPage) | Pages.Text = rm.GetString(Utility.ftSearchPage) | ||
End If | End If | ||
Line 1,262: | Line 1,262: | ||
'If products found | 'If products found | ||
If 0 | If 0 < searchResult.Tables(0).Rows.Count Then | ||
SearchResultRepeater.Visible = True | SearchResultRepeater.Visible = True | ||
SearchResultRepeater.DataSource = searchResult | SearchResultRepeater.DataSource = searchResult | ||
SearchResultRepeater.DataBind | SearchResultRepeater.DataBind | ||
Seprator.InnerHtml = " | Seprator.InnerHtml = "<BR>" | ||
Pages.Text = rm.GetString("L_Page_FTSearch_Page") | Pages.Text = rm.GetString("L_Page_FTSearch_Page") | ||
Matches.Text = totalRecords.ToString & " " & rm.GetString(Utility.propSearchTotal) | Matches.Text = totalRecords.ToString & " " & rm.GetString(Utility.propSearchTotal) | ||
Line 1,305: | Line 1,305: | ||
End Function | End Function | ||
</script> | |||
<title> | |||
<%=rm.GetString(Utility.propPageTitle) & " " & catDisplayName%> | |||
</title> | |||
<LINK REL="stylesheet" TYPE="text/css" HREF="sitelet.css"> | |||
</HEAD> | |||
<body> | |||
<DIV CLASS="Heading"> | |||
<%= rm.GetString(Utility.propPageTitle) & " " & catDisplayName%> | |||
</DIV> | |||
<form id="propSearch" method="post" runat="server"> | |||
<BR> | |||
<asp:Table id="display" runat="server"> | |||
<asp:TableRow> | |||
<asp:TableCell> | |||
<asp:Label id="ProdCode" runat="server">Product Code:</asp:Label> | |||
</asp:TableCell> | |||
<asp:TableCell> | |||
<asp:TextBox id="ProdCodeText" runat="server"></asp:TextBox> | |||
</asp:TableCell> | |||
</asp:TableRow> | |||
<asp:TableRow> | |||
<asp:TableCell> | |||
<asp:Label id="IntroDate" runat="server">Introduction date:</asp:Label> | |||
</asp:TableCell> | |||
<asp:TableCell> | |||
<asp:TextBox id="IntroDateText" runat="server"></asp:TextBox> | |||
</asp:TableCell> | |||
</asp:TableRow> | |||
<asp:TableRow> | |||
<asp:TableCell> | |||
<asp:Label id="Name" runat="server">Name:</asp:Label> | |||
</asp:TableCell> | |||
<asp:TableCell> | |||
<asp:TextBox id="NameText" runat="server"></asp:TextBox> | |||
</asp:TableCell> | |||
</asp:TableRow> | |||
</asp:Table> | |||
<asp:Button id="Button" runat="server" Text="Button" OnClick="Button_Click" /> | |||
<br> | |||
<br> | |||
<asp:Label id="Matches" runat="server" /> | |||
<br> | |||
<br> | |||
<asp:Repeater id="SearchResultRepeater" OnItemCommand="ProductListing_ItemCommand" runat="server"> | |||
<ItemTemplate> | |||
<asp:LinkButton id="SelectProductBtn" CommandName="Select" CommandArgument='<%# CType(Container.DataItem, DataRowView)("ProductID") %>' runat="server"> | |||
<%# DataBinder.Eval(Container.DataItem, "Name") %> | |||
</asp:LinkButton> | |||
&nbsp; ( | &nbsp; ( | ||
<asp:Label id="Describe" runat="server"> | |||
<%# DataBinder.Eval(Container.DataItem, "description") %> | |||
</asp:Label> | |||
) | ) | ||
</ItemTemplate> | |||
<SeparatorTemplate> | |||
<BR> | |||
<BR> | |||
</SeparatorTemplate> | |||
</asp:Repeater> | |||
<DIV id="Seprator" runat="server" /> | |||
<asp:Label id="Pages" runat="server" /> | |||
<asp:Repeater id="Paging" OnItemCommand="PageClick_ItemCommand" runat="server"> | |||
<ItemTemplate> | |||
<asp:LinkButton id="PageClick" CommandName="Select" CommandArgument='<%# CType(Container.DataItem, DataRowView)("Clause") %>' runat="server"> | |||
<%# DataBinder.Eval(Container.DataItem, "Page") %> | |||
</asp:LinkButton> | |||
</ItemTemplate> | |||
</asp:Repeater> | |||
<Localized:Footer runat="server" id="Footer" /> | |||
</form> | |||
</body> | |||
</HTML></pre> | |||
</div> | </div> |
Revision as of 09:30, 21 July 2020
Article ID: 910309
Article Last Modified on 3/16/2007
APPLIES TO
- Microsoft Commerce Server 2002 Standard Edition
- Microsoft Visual Basic .NET 2003 Standard Edition
- Microsoft Visual Basic .NET 2002 Standard Edition
INTRODUCTION
This article contains the source code for the Microsoft Commerce Server 2002 Software Development Kit (SDK) Microsoft ASP.NET-based Catalog Sitelet in Microsoft Visual Basic .NET.
Note The source code for the ASP.NET-based Catalog Sitelet was previously only available in Microsoft Visual C#.
MORE INFORMATION
The following code is the source code for the ASP.NET-based Catalog Sitelet in Visual Basic .NET.
Browse.aspx
<%@ Page Description="Browse Page" CodePage="65001" Debug="true"%> <%@Import Namespace="System.Data"%> <%@Import Namespace="System.Globalization"%> <%@Import Namespace="System.Resources"%> <%@Import Namespace="System.Threading"%> <%@Import Namespace="catalogsitelet"%> <%@Import Namespace="Microsoft.CommerceServer.Runtime"%> <%@Import Namespace="Microsoft.CommerceServer.Runtime.Catalog"%> <%@Import Namespace="Microsoft.CommerceServer.Runtime.Configuration"%> <%@Import Namespace="Microsoft.CommerceServer.Runtime.Diagnostics"%> <%@Register TagPrefix="Localized" TagName="Footer" src="footer.ascx" %> <!--------------------------------------------------------------------- -- File: browse.aspx -- -- Summary: Page used to browse Catalog -- -- Sample: Catalog Sitelet -- ----------------------------------------------------------------------- -- This file is part of the Microsoft Commerce Server 2002 SDK -- -- Copyright (C) 2002 Microsoft Corporation. All rights reserved. -- -- This source code is intended only as a supplement to Microsoft -- Commerce Server 2002 and/or on-line documentation. See these other -- materials for detailed information regarding Microsoft code samples. -- -- THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY -- KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -- IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A -- PARTICULAR PURPOSE. ----------------------------------------------------------------------> <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0"> <meta name="CODE_LANGUAGE" Content="VB"> <meta name="vs_defaultClientScript" content="JavaScript (ECMAScript)"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> <script runat="Server" Language="VB"> Private rm As ResourceManager Private strLanguage As String = Nothing Private catDisplayName As String = Nothing Sub Page_Init(ByVal sender As Object, ByVal args As EventArgs) rm = ResourceFactory.RManager If rm Is Nothing Then 'Resources are unavailable.Server.Transfer(Utility.errorPage) End If End Sub Sub Page_Load(ByVal sender As Object, ByVal args As EventArgs) Dim SelectedCulture As CultureInfo Dim coll As NameValueCollection = Request.QueryString strLanguage = coll(Utility.languageLabel) Try SelectedCulture = CultureInfo.CreateSpecificCulture(strLanguage) Catch e As Exception SelectedCulture = CultureInfo.CreateSpecificCulture(Utility.englishLanguage) strLanguage = Utility.englishLanguage End Try Footer.Language = strLanguage ' If another culture was selected, use that instead If Not (SelectedCulture Is Nothing) Then Thread.CurrentThread.CurrentCulture = SelectedCulture Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture End If catDisplayName = Utility.GetDisplayName(Utility.catalogName, strLanguage) If Not IsPostBack Then UpdateCategories End If End Sub Sub RootCategoryListing_ItemCommand(ByVal source As Object, ByVal args As RepeaterCommandEventArgs) Dim strArg As String = CType(args.CommandArgument, String) Dim arr As String() = strArg.Split("&"C) Dim category As String = arr(0) Dim dispCategory As String = arr(1) Dim products As DataSet = Nothing Dim categories As DataSet = Nothing 'Get child category and products for given category GetProductListing(category, products, categories) If Not (0 = products.Tables(0).Rows.Count) Then 'List child products for category ProductListing.DataSource = products ProductListing.DataBind ProdName.Visible = True ProductListing.Visible = True ProdName.Text = rm.GetString(Utility.browseProdCategories) & " " & dispCategory Else ProdName.Visible = False ProdName.Text = Nothing ProductListing.Visible = False End If If Not (0 = categories.Tables(0).Rows.Count) Then 'List child category for parent category CategoryListing.DataSource = categories CategoryListing.DataBind CatName.Visible = True CategoryListing.Visible = True CatName.Text = rm.GetString(Utility.browseChildCategories) & " " & dispCategory Seprator.InnerHtml = "<BR>" Else CatName.Visible = False CatName.Text = Nothing CategoryListing.Visible = False Seprator.InnerHtml = Nothing End If End Sub Sub UpdateCategories() Dim catalog As ProductCatalog = CommerceContext.Current.CatalogSystem.GetCatalog(Utility.catalogName) RootCategoryListing.DataSource = catalog.GetRootCategories RootCategoryListing.DataBind End Sub Sub ProductListing_ItemCommand(ByVal source As Object, ByVal args As RepeaterCommandEventArgs) Response.Redirect(rm.GetString(Utility.productPageUrl) & "?" & Utility.languageLabel & "=" & strLanguage & "&" & Utility.productID & "=" & CType(args.CommandArgument, String)) End Sub Sub GetProductListing(ByVal category As String, ByRef product As DataSet, ByRef categories As DataSet) Dim catalog As ProductCatalog = CommerceContext.Current.CatalogSystem.GetCatalog(Utility.catalogName) product = catalog.GetCategory(category).GetProducts categories = catalog.GetCategory(category).GetChildCategories End Sub </script> <title> <%=rm.GetString(Utility.browsePageTitle) &" "& catDisplayName%> </title> <LINK REL="stylesheet" TYPE="text/css" HREF="sitelet.css"> </HEAD> <body> <DIV CLASS="Heading"> <%= rm.GetString(Utility.browsePageTitle) &" "& catDisplayName%> </DIV> <BR> <BR> <form id="browse" method="post" runat="server"> <TABLE CELLPADDING="4" CELLSPACING="0" BORDER="0" WIDTH="85%"> <TR> <TD VALIGN="top" BGCOLOR="silver" WIDTH='<%=rm.GetString("Width")%>'> <asp:Repeater id="RootCategoryListing" OnItemCommand="RootCategoryListing_ItemCommand" runat="server"> <HeaderTemplate> <B> <%= rm.GetString(Utility.browsePageSubTitle)%> </B> <BR> </HeaderTemplate> <ItemTemplate> <asp:LinkButton id="SelectCategoryBtn" CommandName="Select" CommandArgument='<%# CType(Container.DataItem, DataRowView)("CategoryName") & "&" & CType(Container.DataItem, DataRowView)("DisplayName") %>' runat="server"> <%# DataBinder.Eval(Container.DataItem, "DisplayName") %> </asp:LinkButton> </ItemTemplate> <SeparatorTemplate> <BR> </SeparatorTemplate> </asp:Repeater> </TD> <TD VALIGN="top"> <b> <asp:Label id="CatName" runat="server" /> </b> <asp:Repeater id="CategoryListing" OnItemCommand="RootCategoryListing_ItemCommand" runat="server"> <HeaderTemplate> <BR> </HeaderTemplate> <ItemTemplate> <asp:LinkButton id="SelectCategory" CommandName="Select" CommandArgument='<%# CType(Container.DataItem, DataRowView)("CategoryName") & "&" & CType(Container.DataItem, DataRowView)("DisplayName") %>' runat="server"> <%# DataBinder.Eval(Container.DataItem, "DisplayName") %> </asp:LinkButton> </ItemTemplate> <SeparatorTemplate> <BR> </SeparatorTemplate> </asp:Repeater> <DIV id="Seprator" runat="server" /> <b> <asp:Label id="ProdName" runat="server" /> </b> <asp:Repeater id="ProductListing" OnItemCommand="ProductListing_ItemCommand" runat="server"> <HeaderTemplate> <BR> </HeaderTemplate> <ItemTemplate> <asp:LinkButton id="SelectProductBtn" CommandName="Select" CommandArgument='<%# CType(Container.DataItem, DataRowView)("ProductID") %>' runat="server"> <%# DataBinder.Eval(Container.DataItem, "Name") %> <br> </asp:LinkButton> <asp:Label id="Describe" runat="server"> <%# DataBinder.Eval(Container.DataItem, "description") %> </asp:Label> </ItemTemplate> <SeparatorTemplate> <BR> <BR> </SeparatorTemplate> </asp:Repeater> </TD> </TR> </TABLE> <Localized:Footer runat="server" ID="Footer" /> </form> </body> </HTML>
Default.aspx
<%@Page Description="Default Page" CodePage="65001" %> <%@Import Namespace="catalogsitelet"%> <%@Import Namespace="System.Threading"%> <%@Import Namespace="System.Resources"%> <%@Import Namespace="System.Globalization"%> <!--------------------------------------------------------------------- -- File: Default.aspx -- -- Summary: Language page for Catalog Sitelet -- -- Sample: Catalog Sitelet -- ----------------------------------------------------------------------- -- This file is part of the Microsoft Commerce Server 2002 SDK -- -- Copyright (C) 2002 Microsoft Corporation. All rights reserved. -- -- This source code is intended only as a supplement to Microsoft -- Commerce Server 2002 and/or on-line documentation. See these other -- materials for detailed information regarding Microsoft code samples. -- -- THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY -- KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -- IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A -- PARTICULAR PURPOSE. ----------------------------------------------------------------------> <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0"> <meta name="CODE_LANGUAGE" Content="VB"> <meta name="vs_defaultClientScript" content="JavaScript (ECMAScript)"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> <script runat="Server" Language="VB"> Private rm As ResourceManager Sub Page_Init(ByVal sender As Object, ByVal args As EventArgs) 'Get the ResourceManager from the Application object rm = ResourceFactory.RManager If rm Is Nothing Then 'Resources are unavailable Server.Transfer(Utility.errorPage) End If End Sub Sub Page_Load(ByVal sender As Object, ByVal args As EventArgs) Try Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages(0)) Catch generatedExceptionVariable0 As Exception 'Provide fallback for not supported languages Thread.CurrentThread.CurrentCulture = New CultureInfo(Utility.englishLanguage) End Try Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture If Not IsPostBack Then English.Text = rm.GetString(Utility.English) German.Text = rm.GetString(Utility.German) French.Text = rm.GetString(Utility.French) Japanese.Text = rm.GetString(Utility.Japanese) English.NavigateUrl = rm.GetString(Utility.mainPageUrl) & "?" & Utility.languageLabel & "=" & Utility.englishLanguage German.NavigateUrl = rm.GetString(Utility.mainPageUrl) & "?" & Utility.languageLabel & "=" & Utility.germanLanguage French.NavigateUrl = rm.GetString(Utility.mainPageUrl) & "?" & Utility.languageLabel & "=" & Utility.frenchLanguage Japanese.NavigateUrl = rm.GetString(Utility.mainPageUrl) & "?" & Utility.languageLabel & "=" & Utility.japaneseLanguage End If End Sub </script> <title> <%=rm.GetString(Utility.siteletTitle)%> </title> <LINK REL="stylesheet" TYPE="text/css" HREF="sitelet.css"> </HEAD> <body MS_POSITIONING="GridLayout"> <DIV CLASS="Heading"> <%= rm.GetString(Utility.siteletTitle)%> </DIV> <BR> <DIV CLASS="H1"> <%= rm.GetString(Utility.siteletSubTitle)%> </DIV> <BR> <form id="Languages" method="post" runat="server"> <UL> <LI> <asp:Hyperlink id="English" Text="English" runat="server" /> </LI> <LI> <asp:Hyperlink id="German" Text="German" runat="server" /> </LI> <LI> <asp:Hyperlink id="French" Text="French" runat="server" /> </LI> <LI> <asp:Hyperlink id="Japanese" Text="Japanese" runat="server" /> </LI> </UL> </form> </body> </HTML>
<%@Import Namespace="System.Globalization"%> <%@Import Namespace="System.Resources"%> <%@Import Namespace="catalogsitelet" %> <%@ Control %> <!--------------------------------------------------------------------- -- File: footer.ascx -- -- Summary: Footer control -- -- Sample: Catalog Sitelet -- ----------------------------------------------------------------------- -- This file is part of the Microsoft Commerce Server 2002 SDK -- -- Copyright (C) 2002 Microsoft Corporation. All rights reserved. -- -- This source code is intended only as a supplement to Microsoft -- Commerce Server 2002 and/or on-line documentation. See these other -- materials for detailed information regarding Microsoft code samples. -- -- THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY -- KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -- IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A -- PARTICULAR PURPOSE. ----------------------------------------------------------------------> <script runat="server" language="VB"> Private strLanguage As String = Nothing Protected Overloads Overrides Sub Render(ByVal writer As HtmlTextWriter) Dim rmgr As ResourceManager = ResourceFactory.RManager If Nothing = strLanguage OrElse "" = strLanguage.Trim Then strLanguage = Utility.englishLanguage End If Home.Text = rmgr.GetString("L_HTMLURLText_Home") Browse.Text = rmgr.GetString("L_HTMLURLText_Footer_Browse") FTSearch.Text = rmgr.GetString("L_HTMLURLText_Footer_FTSearch") PropSearch.Text = rmgr.GetString("L_HTMLURLText_Footer_PropSearch") Home.NavigateUrl = rmgr.GetString(Utility.homePageUrl) Browse.NavigateUrl = rmgr.GetString(Utility.browsePageUrl) & "?" & Utility.languageLabel & "=" & strLanguage FTSearch.NavigateUrl = rmgr.GetString(Utility.ftSearchPageUrl) & "?" & Utility.languageLabel & "=" & strLanguage PropSearch.NavigateUrl = rmgr.GetString(Utility.propSearchPageUrl) & "?" & Utility.languageLabel & "=" & strLanguage MyBase.Render(writer) End Sub Public Property Language() As String Get Return strLanguage End Get Set strLanguage = value End Set End Property </script> <asp:Panel runat="server"> <BR> <asp:Hyperlink id="Home" Text="Home" runat="server" /> | <asp:Hyperlink id="Browse" Text="Browse" runat="server" /> | <asp:Hyperlink id="FTSearch" Text="Full Text Search" runat="server" /> | <asp:Hyperlink id="PropSearch" Text="Property Search" runat="server" /> </asp:Panel>
Ftsearch.aspx
<%@ Page Description="Localized Page" CodePage="65001" %> <%@Import Namespace="System.Globalization"%> <%@Import Namespace="System.Resources"%> <%@Import Namespace="System.Threading"%> <%@Import Namespace="System.Data"%> <%@Import Namespace="catalogsitelet"%> <%@Import Namespace="Microsoft.CommerceServer.Runtime"%> <%@Import Namespace="Microsoft.CommerceServer.Runtime.Catalog"%> <%@Import Namespace="Microsoft.CommerceServer.Runtime.Configuration"%> <%@Import Namespace="Microsoft.CommerceServer.Runtime.Diagnostics"%> <%@Register TagPrefix="Localized" TagName="Footer" src="footer.ascx" %> <!--------------------------------------------------------------------- -- File: ftsearch.aspx -- -- Summary: Page performs free text search and displays the result -- -- Sample: Catalog Sitelet -- ----------------------------------------------------------------------- -- This file is part of the Microsoft Commerce Server 2002 SDK -- -- Copyright (C) 2002 Microsoft Corporation. All rights reserved. -- -- This source code is intended only as a supplement to Microsoft -- Commerce Server 2002 and/or on-line documentation. See these other -- materials for detailed information regarding Microsoft code samples. -- -- THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY -- KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -- IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A -- PARTICULAR PURPOSE. ----------------------------------------------------------------------> <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0"> <meta name="CODE_LANGUAGE" Content="VB"> <meta name="vs_defaultClientScript" content="JavaScript (ECMAScript)"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> <script runat="Server" Language="VB"> Private rm As ResourceManager Private strLanguage As String = Nothing Private catDisplayName As String = Nothing Private searchText As String = Nothing Sub Page_Init(ByVal sender As Object, ByVal args As EventArgs) 'Get the ResourceManager from the Application object rm = ResourceFactory.RManager If rm Is Nothing Then 'Resources are unavailable Server.Transfer(Utility.errorPage) End If End Sub Sub Page_Load(ByVal sender As Object, ByVal args As EventArgs) Dim SelectedCulture As CultureInfo Dim coll As NameValueCollection = Request.QueryString strLanguage = coll(Utility.languageLabel) Try SelectedCulture = CultureInfo.CreateSpecificCulture(strLanguage) Catch e As Exception 'Fallback to English language SelectedCulture = CultureInfo.CreateSpecificCulture(Utility.englishLanguage) strLanguage = Utility.englishLanguage End Try 'Set Language on footer control Footer.Language = strLanguage 'Set culture for current thread If Not (SelectedCulture Is Nothing) Then Thread.CurrentThread.CurrentCulture = SelectedCulture Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture End If 'Initialize controls with appropriate texts Search.Text = rm.GetString(Utility.ftSearchSearch) 'Get display name for catalog, write a function catDisplayName = Utility.GetDisplayName(Utility.catalogName, strLanguage) End Sub Sub SearchButton_Click(ByVal sender As Object, ByVal args As EventArgs) Try Dim totalRecords As Integer = 0 Dim startPage As Integer = 1 searchText = txtSearchText.Text If searchText.Trim = "" Then Return End If Dim catalogCtx As CatalogContext = CommerceContext.Current.CatalogSystem Dim searchResult As DataSet = FreeTextSearch(searchText, startPage, totalRecords) If 0 < searchResult.Tables(0).Rows.Count Then rptSearchResult.Visible = True rptSearchResult.DataSource = searchResult rptSearchResult.DataBind Matches.Text = totalRecords.ToString & " " & rm.GetString(Utility.ftSearchTotal) Else rptSearchResult.Visible = False Seprator.InnerHtml = Nothing Pages.Text = Nothing Matches.Text = Nothing End If 'Do paging Paging.Visible = False If totalRecords > Utility.numberOfRecordToDisplay Then Dim pagingTable As DataTable = Utility.DoPaging(totalRecords, Utility.numberOfRecordToDisplay, searchText) Paging.DataSource = pagingTable.DefaultView Paging.DataBind Paging.Visible = True Seprator.InnerHtml = "<BR>" Pages.Text = rm.GetString(Utility.ftSearchPage) End If Catch e As Exception 'Eat exception End Try End Sub 'Page click response Sub PageClick_ItemCommand(ByVal sender As Object, ByVal args As RepeaterCommandEventArgs) Dim searchClause As String = CType(args.CommandArgument, String) Dim totalRecords As Integer = 0 Dim page As Integer = args.Item.ItemIndex + 1 Dim searchResult As DataSet = FreeTextSearch(searchText, page, totalRecords) 'If products found If 0 < searchResult.Tables(0).Rows.Count Then rptSearchResult.Visible = True rptSearchResult.DataSource = searchResult rptSearchResult.DataBind Seprator.InnerHtml = "<BR>" Pages.Text = rm.GetString(Utility.ftSearchPage) Matches.Text = totalRecords.ToString & " " & rm.GetString(Utility.ftSearchTotal) Else rptSearchResult.Visible = False Seprator.InnerHtml = Nothing Pages.Text = Nothing End If End Sub Function FreeTextSearch(ByVal searchstring As String, ByVal page As Integer, ByRef totalRecords As Integer) As DataSet 'Search Options Dim searchOptions As CatalogSearchOptions = Utility.SetSearchOptions(page, Utility.numberOfRecordToDisplay, "name") 'Look for the products supporting search criteria Dim search As CatalogSearch = New CatalogSearch(CommerceContext.Current.CatalogSystem) search.CatalogNames = Utility.catalogName search.FreeTextSearchPhrase = searchstring search.SearchOptions = searchOptions Return search.Search(totalRecords) End Function Sub ProductListing_ItemCommand(ByVal sender As Object, ByVal args As RepeaterCommandEventArgs) Response.Redirect(rm.GetString(Utility.productPageUrl) & "?" & Utility.languageLabel & "=" & strLanguage & "&" & Utility.productID & "=" & CType(args.CommandArgument, String)) End Sub </script> <title> <%=rm.GetString(Utility.ftPageTitle) & " " & catDisplayName%> </title> <LINK REL="stylesheet" TYPE="text/css" HREF="sitelet.css"> </HEAD> <body> <DIV CLASS="Heading"> <%= rm.GetString(Utility.ftPageTitle) & " " & catDisplayName%> </DIV> <form id="ftsearch" method="post" runat="server"> <asp:TextBox id="txtSearchText" runat="server"></asp:TextBox> <input type=text style="visibility:hidden" runat="server"/> <BR> <asp:Button id="Search" runat="server" Text="Search" OnClick="SearchButton_Click"></asp:Button> <br> <br> <asp:Label id="Matches" runat="server" /> <br> <br> <asp:Repeater id="rptSearchResult" OnItemCommand="ProductListing_ItemCommand" runat="server"> <ItemTemplate> <asp:LinkButton id="SelectProductBtn" CommandName="Select" CommandArgument='<%# CType(Container.DataItem, DataRowView)("ProductID") %>' runat="server"> <%# DataBinder.Eval(Container.DataItem, "Name") %> </asp:LinkButton> ( <asp:Label id="Describe" runat="server"> <%# DataBinder.Eval(Container.DataItem, "description") %> </asp:Label> ) </ItemTemplate> <SeparatorTemplate> <BR> <br> </SeparatorTemplate> </asp:Repeater> <DIV id="Seprator" runat="server" /> <asp:Label id="Pages" runat="server" /> <asp:Repeater id="Paging" OnItemCommand="PageClick_ItemCommand" runat="server"> <ItemTemplate> <asp:LinkButton id="PageClick" CommandName="Select" CommandArgument='<%# CType(Container.DataItem, DataRowView)("Clause") %>' runat="server"> <%# DataBinder.Eval(Container.DataItem, "Page") %> </asp:LinkButton> </ItemTemplate> </asp:Repeater> <Localized:Footer runat="server" id="Footer" /> </form> </body> </HTML>
Global.ascx
<%@Import namespace="System"%> <%@Import namespace="System.Collections"%> <%@Import namespace="System.ComponentModel"%> <%@Import namespace="System.Web"%> <%@Import namespace="System.Web.SessionState"%> <%@Import namespace="Microsoft.CommerceServer.Runtime"%> <%@Import namespace="System.IO"%> <%@Import namespace="System.Resources"%> <%@Import namespace="System.Threading"%> <%@Import namespace="System.Globalization"%> <script runat="server" language="VB"> Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs) End Sub Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs) End Sub Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs) End Sub Sub Application_EndRequest(ByVal sender As Object, ByVal e As EventArgs) End Sub Sub Session_End(ByVal sender As Object, ByVal e As EventArgs) End Sub Sub InitializeComponent() End Sub Sub Application_End(ByVal sender As Object, ByVal e As EventArgs) End Sub </script>
Main.aspx
<%@Page Description="Localized Page" CodePage="65001" %> <%@Import Namespace="catalogsitelet"%> <%@Import Namespace="System.Resources"%> <%@Import Namespace="System.Threading"%> <%@Import Namespace="System.Globalization"%> <%@Import Namespace="System.Data"%> <%@Import Namespace="Microsoft.CommerceServer.Runtime"%> <%@Import Namespace="Microsoft.CommerceServer.Runtime.Catalog"%> <%@Import Namespace="Microsoft.CommerceServer.Runtime.Configuration"%> <%@Import Namespace="Microsoft.CommerceServer.Runtime.Diagnostics"%> <%@Register TagPrefix="Localized" TagName="Footer" src="footer.ascx" %> <!--------------------------------------------------------------------- -- File: main.aspx -- -- Summary: Main selection page for Catalog Sitelet -- -- Sample: Catalog Sitelet -- ----------------------------------------------------------------------- -- This file is part of the Microsoft Commerce Server 2002 SDK -- -- Copyright (C) 2002 Microsoft Corporation. All rights reserved. -- -- This source code is intended only as a supplement to Microsoft -- Commerce Server 2002 and/or on-line documentation. See these other -- materials for detailed information regarding Microsoft code samples. -- -- THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY -- KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -- IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A -- PARTICULAR PURPOSE. ----------------------------------------------------------------------> <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0"> <meta name="CODE_LANGUAGE" Content="VB"> <meta name="vs_defaultClientScript" content="JavaScript (ECMAScript)"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> <script runat="Server" Language="VB"> Private rm As ResourceManager Private strLanguage As String = Nothing Sub Page_Init(ByVal sender As Object, ByVal args As EventArgs) 'Get the ResourceManager from the Application object rm = ResourceFactory.RManager If rm Is Nothing Then 'Resources are unavailable Server.Transfer(Utility.errorPage) End If End Sub Sub Page_Load(ByVal sender As Object, ByVal args As EventArgs) Dim SelectedCulture As CultureInfo Dim coll As NameValueCollection = Request.QueryString strLanguage = coll(Utility.languageLabel) Try SelectedCulture = CultureInfo.CreateSpecificCulture(strLanguage) Catch e As Exception SelectedCulture = CultureInfo.CreateSpecificCulture(Utility.englishLanguage) strLanguage = Utility.englishLanguage End Try Footer.Language = strLanguage If Not (SelectedCulture Is Nothing) Then Thread.CurrentThread.CurrentCulture = SelectedCulture Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture End If If Not IsPostBack Then BrowseCat.Text = rm.GetString(Utility.browsePageLabel) FullTextSearch.Text = rm.GetString(Utility.ftSearchLabel) PropertySearch.Text = rm.GetString(Utility.propSearchLabel) BrowseCat.NavigateUrl = rm.GetString(Utility.browsePageUrl) & "?" & Utility.languageLabel & "=" & strLanguage FullTextSearch.NavigateUrl = rm.GetString(Utility.ftSearchPageUrl) & "?" & Utility.languageLabel & "=" & strLanguage PropertySearch.NavigateUrl = rm.GetString(Utility.propSearchPageUrl) & "?" & Utility.languageLabel & "=" & strLanguage End If End Sub </script> <title> <%=rm.GetString(Utility.pageTitle)%> </title> <LINK REL="stylesheet" TYPE="text/css" HREF="sitelet.css"> </HEAD> <body> <DIV CLASS="Heading"> <%= rm.GetString(Utility.pageTitle)%> </DIV> <BR> <BR> <form id="main" method="post" runat="server"> <ul> <li> <asp:Hyperlink id="BrowseCat" Text="Browse the Catalog" runat="server" /> </li> <li> <asp:Hyperlink id="FullTextSearch" Text="Perform a Full Text Search" runat="server" /> </li> <li> <asp:Hyperlink id="PropertySearch" Text="Perform a Property Search" runat="server" /> </li> </ul> <Localized:Footer runat="Server" ID="Footer" /> </form> </body> </HTML>
Noresource.aspx
<%@ Page %> <!--------------------------------------------------------------------- -- File: noresource.aspx -- -- Summary: Shown when no resource manager found -- -- Sample: Catalog Sitelet -- ----------------------------------------------------------------------- -- This file is part of the Microsoft Commerce Server 2002 SDK -- -- Copyright (C) 2002 Microsoft Corporation. All rights reserved. -- -- This source code is intended only as a supplement to Microsoft -- Commerce Server 2002 and/or on-line documentation. See these other -- materials for detailed information regarding Microsoft code samples. -- -- THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY -- KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -- IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A -- PARTICULAR PURPOSE. ----------------------------------------------------------------------> <html> <head> <title>Server Error</title> </head> <body> <h1>Server Error</h1> Localized resources were not available.<p> Please contact the administrator. </body> </html>
Product.aspx
<%@ Page Description="Localized Page" CodePage="65001" %> <%@Import Namespace="System.Globalization"%> <%@Import Namespace="System.Resources"%> <%@Import Namespace="System.Threading"%> <%@Import Namespace="System"%> <%@Import Namespace="catalogsitelet"%> <%@Import Namespace="Microsoft.CommerceServer.Runtime"%> <%@Import Namespace="Microsoft.CommerceServer.Runtime.Catalog"%> <%@Import Namespace="Microsoft.CommerceServer.Runtime.Configuration"%> <%@Import Namespace="Microsoft.CommerceServer.Runtime.Diagnostics"%> <%@Import Namespace="System.Data"%> <%@Register TagPrefix="Localized" TagName="Footer" src="footer.ascx" %> <!--------------------------------------------------------------------- -- File: product.aspx -- -- Summary: Page is used to display product details -- -- Sample: Catalog Sitelet -- ----------------------------------------------------------------------- -- This file is part of the Microsoft Commerce Server 2002 SDK -- -- Copyright (C) 2002 Microsoft Corporation. All rights reserved. -- -- This source code is intended only as a supplement to Microsoft -- Commerce Server 2002 and/or on-line documentation. See these other -- materials for detailed information regarding Microsoft code samples. -- -- THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY -- KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -- IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A -- PARTICULAR PURPOSE. ----------------------------------------------------------------------> <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0"> <meta name="CODE_LANGUAGE" Content="VB"> <meta name="vs_defaultClientScript" content="JavaScript (ECMAScript)"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> <script runat="Server" Language="VB"> Private rm As ResourceManager Private strLanguage As String = Nothing Private catalog As ProductCatalog = Nothing Private productdt As DataRow = Nothing Private productDisplayName As String = Nothing Sub Page_Init(ByVal sender As Object, ByVal args As EventArgs) 'ResourceManager from the Application object rm = ResourceFactory.RManager catalog = CommerceContext.Current.CatalogSystem.GetCatalog(Utility.catalogName) If rm Is Nothing Then 'Resources are unavailable Server.Transfer(Utility.errorPage) End If End Sub Sub Page_Load(ByVal sender As Object, ByVal args As EventArgs) Dim SelectedCulture As CultureInfo Dim coll As NameValueCollection = Request.QueryString strLanguage = coll(Utility.languageLabel) Try SelectedCulture = CultureInfo.CreateSpecificCulture(strLanguage) Catch e As Exception SelectedCulture = CultureInfo.CreateSpecificCulture(Utility.englishLanguage) strLanguage = Utility.englishLanguage End Try Footer.Language = strLanguage catalog.ActiveLanguage = strLanguage If Not (SelectedCulture Is Nothing) Then Thread.CurrentThread.CurrentCulture = SelectedCulture Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture End If Dim productid As String = coll(Utility.productID) If Not IsPostBack AndAlso Not (productid Is Nothing) Then Try Dim myProduct As Product = catalog.GetProduct(productid) Dim data As DataSet = myProduct.GetProductProperties productdt = data.Tables(0).Rows(0) Try productDisplayName = CType(productdt("name"), String) Catch e As Exception productDisplayName = "" End Try Try ProductImage.ImageUrl = CType(productdt("Image_filename"), String) Catch e As Exception ProductImage.ImageUrl = Nothing End Try Try ProductIDLabel.Text = CType(productdt("name"), String) Catch e As Exception ProductIDLabel.Text = Nothing End Try Try IntroDateLabel.Text = rm.GetString(Utility.productPageIntro) Dim dateTime As DateTime = CType(productdt("IntroductionDate"), DateTime) IntroDate.Text = dateTime.ToShortDateString Catch e As Exception IntroDateLabel.Text = Nothing End Try Try PriceLabel.Text = rm.GetString(Utility.productPagePrice) Price.Text = "$" & productdt("cy_list_price").ToString Catch e As Exception PriceLabel.Text = Nothing End Try Try ProductCodeLabel.Text = rm.GetString(Utility.productPageCode) ProductCode.Text = productdt("ProductCode").ToString Catch e As Exception ProductCodeLabel.Text = Nothing End Try Try Dim variantData As DataSet = myProduct.GetVariants VariantListing.DataSource = variantData VariantListing.DataBind If Not (0 = variantData.Tables(0).Rows.Count) Then Variants.Text = rm.GetString(Utility.productPageColor) Else Variants.Text = Nothing End If Catch e As Exception Variants.Text = Nothing End Try Try DescribeLabel.Text = rm.GetString(Utility.productPageDescription) Description.Text = CType(productdt("Description"), String) Catch e As Exception DescribeLabel.Text = Nothing End Try Try Size.Text = CType(productdt("ProductSize").ToString, String) If Not ("" = Size.Text.Trim) Then SizeLabel.Text = rm.GetString(Utility.productPageSize) End If Catch e As Exception SizeLabel.Text = Nothing End Try Try Dim available As Integer = CType(productdt("OnSale"), Integer) If 1 = available Then AvailableLabel.Text = rm.GetString(Utility.productPageAvailable) Else AvailableLabel.Text = rm.GetString(Utility.productPageUnavailable) End If Catch e As Exception AvailableLabel.Text = Nothing End Try Catch e As Exception 'Eat exception End Try End If End Sub </script> <title> <%=rm.GetString(Utility.productPageTitle) & " " & productDisplayName%> </title> <LINK REL="stylesheet" TYPE="text/css" HREF="sitelet.css"> </HEAD> <body> <DIV CLASS="Heading"> <%= rm.GetString(Utility.productPageTitle) & " " & productDisplayName%> </DIV> <BR> <BR> <form id="Productform" method="post" runat="server"> <asp:Table id="Product" runat="server" Width="50%" cellpadding="2" cellspacing="0" Height="175px"> <asp:TableRow> <asp:TableCell ColumnSpan="100"> <B> <asp:Label ID="ProductIDLabel" Runat="server" /> </B> <br> <asp:Label ID="IntroDateLabel" Runat="server" /> <asp:Label ID="IntroDate" Runat="server" /> <br> </asp:TableCell> </asp:TableRow> <asp:TableRow> <asp:TableCell ColumnSpan="70"> <asp:Image id="ProductImage" runat="server"></asp:Image> </asp:TableCell> <asp:TableCell ColumnSpan="30"> <b> <asp:Label ID="PriceLabel" Runat="server" /> </b> <asp:Label ID="Price" Runat="server" /> <br> <b> <asp:Label ID="ProductCodeLabel" Runat="server" /> </b> <asp:Label ID="ProductCode" Runat="server" /> <br> </asp:TableCell> </asp:TableRow> <asp:TableRow> <asp:TableCell ColumnSpan="100"> <B> <asp:Label ID="Variants" Runat="server" /> </B> <br> <asp:Repeater id="VariantListing" runat="server"> <ItemTemplate> <asp:Label id="Color" runat="server"> <%# DataBinder.Eval(Container.DataItem, "ProductColor") %> </asp:Label> </ItemTemplate> <SeparatorTemplate> <BR> </SeparatorTemplate> </asp:Repeater> <BR> </asp:TableCell> </asp:TableRow> <asp:TableRow> <asp:TableCell ColumnSpan="100"> <B> <asp:Label ID="DescribeLabel" Runat="server" /> </B> <BR> <asp:Label ID="Description" Runat="server" /> <BR> </asp:TableCell> </asp:TableRow> <asp:TableRow> <asp:TableCell ColumnSpan="100"> <B> <asp:Label ID="SizeLabel" Runat="server" /> </B> <asp:Label ID="Size" Runat="server" /> <BR> </asp:TableCell> </asp:TableRow> </asp:Table> <asp:Label ID="AvailableLabel" Runat="server" /> <Localized:Footer runat="server" id="Footer" /> </form> </body> </HTML>
Propsearch.aspx
<%@Register TagPrefix="Localized" TagName="Footer" src="footer.ascx" %> <%@Import Namespace="System.Data"%> <%@Import Namespace="Microsoft.CommerceServer.Runtime"%> <%@Import Namespace="Microsoft.CommerceServer.Runtime.Catalog"%> <%@Import Namespace="Microsoft.CommerceServer.Runtime.Configuration"%> <%@Import Namespace="Microsoft.CommerceServer.Runtime.Diagnostics"%> <%@Import Namespace="catalogsitelet"%> <%@Import Namespace="System.Threading"%> <%@Import Namespace="System.Resources"%> <%@Import Namespace="System.Globalization"%> <%@ Page Description="Localized Page" CodePage="65001" %> <!--------------------------------------------------------------------- -- File: propsearch.aspx -- -- Summary: Page performs property search and displays the result -- -- Sample: Catalog Sitelet -- ----------------------------------------------------------------------- -- This file is part of the Microsoft Commerce Server 2002 SDK -- -- Copyright (C) 2002 Microsoft Corporation. All rights reserved. -- -- This source code is intended only as a supplement to Microsoft -- Commerce Server 2002 and/or on-line documentation. See these other -- materials for detailed information regarding Microsoft code samples. -- -- THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY -- KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -- IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A -- PARTICULAR PURPOSE. ----------------------------------------------------------------------> <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0"> <meta name="CODE_LANGUAGE" Content="VB"> <meta name="vs_defaultClientScript" content="JavaScript (ECMAScript)"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> <script runat="Server" Language="VB"> Private rm As ResourceManager Private strLanguage As String = Nothing Private catDisplayName As String = Nothing Private productCode As String = Nothing Private introductionDate As String = Nothing Private productName As String = Nothing Sub Page_Init(ByVal sender As Object, ByVal args As EventArgs) 'Get the ResourceManager from the Application object rm = ResourceFactory.RManager If rm Is Nothing Then 'Do something sensible if resources are unavailable Server.Transfer(Utility.errorPage) End If End Sub Sub Page_Load(ByVal sender As Object, ByVal args As EventArgs) Dim SelectedCulture As CultureInfo Dim coll As NameValueCollection = Request.QueryString strLanguage = coll(Utility.languageLabel) Try SelectedCulture = CultureInfo.CreateSpecificCulture(strLanguage) Catch e As Exception 'Fallback to English language SelectedCulture = CultureInfo.CreateSpecificCulture(Utility.englishLanguage) strLanguage = Utility.englishLanguage End Try 'Set Language on footer control Footer.Language = strLanguage 'Set culture for current thread If Not (SelectedCulture Is Nothing) Then Thread.CurrentThread.CurrentCulture = SelectedCulture Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture End If 'Initialize controls with appropriate texts ProdCode.Text = rm.GetString(Utility.productPageCode) IntroDate.Text = rm.GetString(Utility.propSearchIntro) Name.Text = rm.GetString(Utility.propSearchTitle) Button.Text = rm.GetString(Utility.ftSearchSearch) catDisplayName = Utility.GetDisplayName(Utility.catalogName, strLanguage) End Sub Sub Button_Click(ByVal sender As Object, ByVal args As EventArgs) Dim searchClause As String = Nothing Try 'To keep count of records found Dim totalRecords As Integer = 0 Dim startPage As Integer = 1 'Product code productCode = ProdCodeText.Text.Trim If Not ("" = productCode) Then BuildClause(searchClause, "productcode", productCode, False) End If 'Introduction date introductionDate = IntroDateText.Text.Trim If Not ("" = introductionDate) Then BuildClause(searchClause, "introductiondate", introductionDate, True) End If 'Product name productName = NameText.Text.Trim If Not ("" = productName) Then BuildClause(searchClause, "name", productName, False) End If Dim searchResult As DataSet = PropertySearch(searchClause, startPage, totalRecords) Paging.Visible = False 'If products found If Not (searchResult Is Nothing) AndAlso 0 < searchResult.Tables(0).Rows.Count Then SearchResultRepeater.Visible = True SearchResultRepeater.DataSource = searchResult SearchResultRepeater.DataBind Matches.Text = totalRecords.ToString & " " & rm.GetString(Utility.propSearchTotal) Else SearchResultRepeater.Visible = False Seprator.InnerHtml = Nothing Pages.Text = Nothing Matches.Text = Nothing End If 'Do paging If totalRecords > Utility.numberOfRecordToDisplay Then Dim pagingTable As DataTable = Utility.DoPaging(totalRecords, Utility.numberOfRecordToDisplay, searchClause) Paging.DataSource = pagingTable.DefaultView Paging.DataBind Paging.Visible = True Seprator.InnerHtml = "<BR>" Pages.Text = rm.GetString(Utility.ftSearchPage) End If ProdCodeText.Text = Nothing IntroDateText.Text = Nothing NameText.Text = Nothing Catch e As Exception 'Eat exception End Try End Sub 'Redirects to product page Sub ProductListing_ItemCommand(ByVal sender As Object, ByVal args As RepeaterCommandEventArgs) Response.Redirect(rm.GetString(Utility.productPageUrl) & "?" & Utility.languageLabel & "=" & strLanguage & "&" & Utility.productID & "=" & CType(args.CommandArgument, String)) End Sub 'Page click response Sub PageClick_ItemCommand(ByVal sender As Object, ByVal args As RepeaterCommandEventArgs) Dim searchClause As String = CType(args.CommandArgument, String) Dim totalRecords As Integer = 0 Dim page As Integer = args.Item.ItemIndex + 1 Dim searchResult As DataSet = PropertySearch(searchClause, page, totalRecords) 'If products found If 0 < searchResult.Tables(0).Rows.Count Then SearchResultRepeater.Visible = True SearchResultRepeater.DataSource = searchResult SearchResultRepeater.DataBind Seprator.InnerHtml = "<BR>" Pages.Text = rm.GetString("L_Page_FTSearch_Page") Matches.Text = totalRecords.ToString & " " & rm.GetString(Utility.propSearchTotal) Else SearchResultRepeater.Visible = False Seprator.InnerHtml = Nothing Pages.Text = Nothing End If End Sub 'Creates Where clause for SQL statement Public Sub BuildClause(ByRef searchCaluse As String, ByVal sKey As String, ByVal sValue As String, ByVal bEquals As Boolean) If bEquals Then If searchCaluse Is Nothing Then searchCaluse = sKey & " = N" & "'" & sValue & "'" Else searchCaluse = searchCaluse & " or " & sKey & " = N" & "'" & sValue & "'" End If Else If searchCaluse Is Nothing Then searchCaluse = sKey & " like N" & "'" & sValue & "'" Else searchCaluse = searchCaluse & " or " & sKey & " like N" & "'" & sValue & "'" End If End If End Sub Function PropertySearch(ByVal searchstring As String, ByVal page As Integer, ByRef totalRecords As Integer) As DataSet 'Search Options Dim searchOptions As CatalogSearchOptions = Utility.SetSearchOptions(page, Utility.numberOfRecordToDisplay, "name") 'Look for the products supporting search criteria Dim search As CatalogSearch = New CatalogSearch(CommerceContext.Current.CatalogSystem) search.CatalogNames = Utility.catalogName search.SqlWhereClause = searchstring search.SearchOptions = searchOptions Return search.Search(totalRecords) End Function </script> <title> <%=rm.GetString(Utility.propPageTitle) & " " & catDisplayName%> </title> <LINK REL="stylesheet" TYPE="text/css" HREF="sitelet.css"> </HEAD> <body> <DIV CLASS="Heading"> <%= rm.GetString(Utility.propPageTitle) & " " & catDisplayName%> </DIV> <form id="propSearch" method="post" runat="server"> <BR> <asp:Table id="display" runat="server"> <asp:TableRow> <asp:TableCell> <asp:Label id="ProdCode" runat="server">Product Code:</asp:Label> </asp:TableCell> <asp:TableCell> <asp:TextBox id="ProdCodeText" runat="server"></asp:TextBox> </asp:TableCell> </asp:TableRow> <asp:TableRow> <asp:TableCell> <asp:Label id="IntroDate" runat="server">Introduction date:</asp:Label> </asp:TableCell> <asp:TableCell> <asp:TextBox id="IntroDateText" runat="server"></asp:TextBox> </asp:TableCell> </asp:TableRow> <asp:TableRow> <asp:TableCell> <asp:Label id="Name" runat="server">Name:</asp:Label> </asp:TableCell> <asp:TableCell> <asp:TextBox id="NameText" runat="server"></asp:TextBox> </asp:TableCell> </asp:TableRow> </asp:Table> <asp:Button id="Button" runat="server" Text="Button" OnClick="Button_Click" /> <br> <br> <asp:Label id="Matches" runat="server" /> <br> <br> <asp:Repeater id="SearchResultRepeater" OnItemCommand="ProductListing_ItemCommand" runat="server"> <ItemTemplate> <asp:LinkButton id="SelectProductBtn" CommandName="Select" CommandArgument='<%# CType(Container.DataItem, DataRowView)("ProductID") %>' runat="server"> <%# DataBinder.Eval(Container.DataItem, "Name") %> </asp:LinkButton> ( <asp:Label id="Describe" runat="server"> <%# DataBinder.Eval(Container.DataItem, "description") %> </asp:Label> ) </ItemTemplate> <SeparatorTemplate> <BR> <BR> </SeparatorTemplate> </asp:Repeater> <DIV id="Seprator" runat="server" /> <asp:Label id="Pages" runat="server" /> <asp:Repeater id="Paging" OnItemCommand="PageClick_ItemCommand" runat="server"> <ItemTemplate> <asp:LinkButton id="PageClick" CommandName="Select" CommandArgument='<%# CType(Container.DataItem, DataRowView)("Clause") %>' runat="server"> <%# DataBinder.Eval(Container.DataItem, "Page") %> </asp:LinkButton> </ItemTemplate> </asp:Repeater> <Localized:Footer runat="server" id="Footer" /> </form> </body> </HTML>
REFERENCES
For more information about the ASP.NET-based Catalog Sitelet, visit the following Microsoft Developer Network (MSDN) Web site:
Keywords: kbprogramming kbinfo kbhowto kbcode KB910309