home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 40 / IOPROG_40.ISO / SOFT / NETFrameworkSDK.exe / comsdk.cab / samples.exe / QuickStart / aspplus / samples / grocertogo / GrocerToGo.aspx < prev    next >
Encoding:
Text File  |  2000-05-31  |  16.9 KB  |  385 lines

  1. <%@ Import Namespace="System.Data" %>
  2. <%@ Import Namespace="Market" %>
  3.  
  4. <html>
  5. <head>
  6.     <title>GrocerToGo</title>
  7.     <link rel="stylesheet"href="grocerstyle.css">
  8.  
  9.     <style>
  10.         div.details { background-color:ffffcc; padding-top:15; padding-bottom:20; }
  11.         div.details table { width:375; }
  12.         div.details table td { font-family:Verdana; font-size:8pt; }
  13.     </style>
  14.  
  15.     <script language="C#" runat=server>
  16.  
  17.         public void Page_Load(Object sender, EventArgs e) {
  18.  
  19.            if (!IsPostBack) {
  20.  
  21.               ProductListing.SelectedIndex = 0;
  22.  
  23.               UpdateProducts();
  24.               UpdateShoppingCart();
  25.            }
  26.         }
  27.  
  28.         public void CategoryList_Select(Object sender, EventArgs e) {
  29.  
  30.            CurrentCategory.Text = CategoryList.Items[CategoryList.SelectedIndex].Text;
  31.            UpdateProducts();
  32.         }
  33.  
  34.         public void ProductListing_Select(Object sender, EventArgs e) {
  35.  
  36.            UpdateProducts();
  37.         }
  38.  
  39.         public void AddBtn_Click(Object sender, ImageClickEventArgs e) {
  40.  
  41.            int productID = Int32.Parse(ProductListing.DataKeys[ProductListing.SelectedIndex].ToString());
  42.  
  43.            InventoryDB market = new InventoryDB();
  44.            DataRow product = market.GetProduct(productID);
  45.  
  46.            Market.OrderList shoppingCart = ((Market.OrderList) Session["ShoppingCart"]);
  47.            shoppingCart.Add(new Market.OrderItem(productID, (String) product["ProductName"], Currency.ToDouble(((Currency) product["UnitPrice"])), 1));
  48.  
  49.            UpdateShoppingCart();
  50.         }
  51.  
  52.         public void Recalculate_Click(Object sender, ImageClickEventArgs e) {
  53.  
  54.            // Obtain Shopping Cart From Session State
  55.  
  56.            Market.OrderList shoppingCart = ((Market.OrderList) Session["ShoppingCart"]);
  57.  
  58.            // Iterate over items in shopping cart (update cart with current row qty textbox value
  59.  
  60.            for (int i=0; i<ShoppingCartList.Items.Count; i++) {
  61.  
  62.               HtmlInputText qty = (HtmlInputText) ShoppingCartList.Items[i].FindControl("Qty");
  63.               shoppingCart[(String) ShoppingCartList.DataKeys[i]].Quantity = Int32.Parse(qty.Value);
  64.            }
  65.  
  66.            UpdateShoppingCart();
  67.         }
  68.  
  69.         public void ClearCart_Click(Object sender, ImageClickEventArgs e) {
  70.  
  71.            // Obtain access to Shopping Cart From Session State
  72.  
  73.            Market.OrderList shoppingCart = ((Market.OrderList) Session["ShoppingCart"]);
  74.  
  75.            // Clear Items From Shopping Cart and then Update UI
  76.  
  77.            shoppingCart.ClearCart();
  78.            UpdateShoppingCart();
  79.         }
  80.  
  81.         void UpdateProducts() {
  82.  
  83.            InventoryDB market = new InventoryDB();
  84.  
  85.            // Update Product Listing at Bottom of Page
  86.  
  87.            int categoryID = Int32.Parse(CategoryList.Items[CategoryList.SelectedIndex].Value);
  88.            ProductListing.DataSource = market.GetProducts(categoryID).DefaultView;
  89.            ProductListing.DataBind();
  90.  
  91.            // Update Product Information
  92.  
  93.            int productID = Int32.Parse(ProductListing.DataKeys[ProductListing.SelectedIndex].ToString());
  94.            DataRow product = market.GetProduct(productID);
  95.  
  96.            Name.Text = product["ProductName"].ToString();
  97.            SelectedProdPicture.Src = product["ImagePath"].ToString();
  98.            ServingSize.Text = product["ServingSize"].ToString();
  99.            Servings.Text = product["Servings"].ToString();
  100.  
  101.            // Update Product Calory Information
  102.  
  103.            DetailsListing.DataSource = market.GetProductCalories(productID).DefaultView;
  104.            DetailsListing.DataBind();
  105.         }
  106.  
  107.         void UpdateShoppingCart() {
  108.  
  109.            // Update Shopping Cart UI from Basket Stored in Session State
  110.  
  111.            Market.OrderList shoppingCart = ((Market.OrderList) Session["ShoppingCart"]);
  112.  
  113.            SubTotal.Text = String.Format("{0:C}", shoppingCart.SubTotal);
  114.            Tax.Text = String.Format("{0:C}", shoppingCart.Tax);
  115.            Total.Text = String.Format("{0:C}", shoppingCart.Total);
  116.  
  117.            ShoppingCartList.DataSource=shoppingCart.Values;
  118.            ShoppingCartList.DataBind();
  119.         }
  120.  
  121.     </script>
  122.  
  123. </head>
  124. <body topmargin="0" leftmargin="0" marginwidth="0" marginheight="0">
  125.  
  126.     <form runat="server">
  127.  
  128.         <table cellspacing=0 cellpadding=3 bgcolor="DC6035" border=0 width="100%">
  129.             <tr>
  130.                 <td align="left"><img src="images/logo.gif"></td>
  131.                 <td align="right">
  132.                     <a><img border=0 src="images/home.gif"></a>
  133.                 </td>              
  134.             </tr>
  135.             <tr>
  136.                 <td align="right" class="select" colspan="2">
  137.  
  138.                     <b>Select Category:  </b>
  139.  
  140.                     <select id="CategoryList" style="width:75" runat="server">
  141.                         <option selected value="1">Milk</option>
  142.                         <option value="2">Cereal</option>
  143.                         <option value="3">Soda</option>
  144.                     </select>
  145.  
  146.                     <asp:button text="Select" OnClick="CategoryList_Select" runat=server/>
  147.  
  148.                 </td>
  149.             </tr>
  150.         </table> 
  151.  
  152.         <table border=0 width=100% cellspacing=0 cellpadding=15 bgcolor="ffffcc">
  153.             <tr>
  154.  
  155.                 <td valign=top bgcolor=ffffcc>
  156.  
  157.                     <p>
  158.  
  159.                     <h3>
  160.                         <b>Product Category: <asp:label id="CurrentCategory" runat=server>Milk</asp:label><b>
  161.                     </h3>
  162.  
  163.                     <table width="100%" cellpadding=0 cellspacing=0 >
  164.                         <tr style="padding-left:12" >
  165.                             <td align="center" style="border-style:inset;" bgcolor="EDBE7B" width=140>
  166.                                 <img id="SelectedProdPicture" runat=server>
  167.                             </td>
  168.                             <td align="center" bgcolor="ffffcc" style="padding-right:0;">
  169.  
  170.                             <div class="details">
  171.  
  172.                                <table cellpadding=1 >
  173.                                   <tr>
  174.                                      <td colspan=3>
  175.                                         <b><font face="Verdana" size=3><asp:label id="Name" runat=server> </asp:label></font></b>
  176.                                      </td>
  177.                                      <td align=right>
  178.                                         <asp:imagebutton ImageUrl="images/addcart.gif" OnClick="AddBtn_Click" runat=server/>
  179.                                      </td>
  180.                                   </tr>
  181.                                   <tr>
  182.                                      <td colspan=4 >
  183.                                         Serving Size <asp:label id="ServingSize" runat=server>  </asp:label>
  184.                                      </td>
  185.                                   </tr>
  186.                                   <tr>
  187.                                      <td colspan=4>
  188.                                         Servings Per Container <asp:label id="Servings" runat=server> </asp:label>
  189.                                      </td>
  190.                                   </tr>
  191.                                   <tr>
  192.                                      <td height=5 colspan=4 bgcolor="000000"></td>
  193.                                   </tr>
  194.                                 </table>
  195.  
  196.                                 <asp:repeater id="DetailsListing"  runat="server">
  197.  
  198.                                     <template name="itemtemplate">
  199.                                        <table cellpadding=0>
  200.                                           <tr>
  201.                                              <td colspan=3>
  202.                                                 <b><%# DataBinder.Eval(Container.DataItem, "Name") %></b>
  203.                                                 <%# DataBinder.Eval(Container.DataItem, "Grams") %>
  204.                                              </td>
  205.                                              <td align=right>
  206.                                                 <b><%# DataBinder.Eval(Container.DataItem, "Percent") %>%</b>
  207.                                              </td>
  208.                                           </tr>
  209.                                        </table>
  210.                                     </template>
  211.                                              
  212.                                     <template name="separatortemplate">
  213.                                        <table cellpadding=0 >
  214.                                          <tr>
  215.                                             <td colspan=4 height=1 bgcolor="000000"></td>
  216.                                          </tr>
  217.                                        </table>
  218.                                     </template>
  219.  
  220.                                     <template name="footertemplate">
  221.                                        <table cellpadding=0 >
  222.                                           <tr>
  223.                                              <td colspan=4 height=5 bgcolor="000000"></td>
  224.                                           </tr>
  225.                                        </table>
  226.                                     </template>
  227.  
  228.                                 </asp:repeater>
  229.  
  230.                                </div>
  231.                             </td>
  232.                         </tr>
  233.                     </table>
  234.  
  235.                     <p>
  236.  
  237.                     <table>
  238.                         <tr>
  239.                             <td class="products">
  240.  
  241.                                 <asp:datalist id="ProductListing" DataKeyField="ProductID" showheader=false showfooter=false OnSelectedIndexChanged="ProductListing_Select" repeatdirection="horizontal" borderwidth=0 runat="server">
  242.  
  243.                                     <template name="itemtemplate">
  244.                                         <table>
  245.                                             <tr>
  246.                                                 <td width="150">
  247.  
  248.                                                     <asp:imagebutton borderwidth=6 bordercolor="#ffffcc" command="Select" ImageUrl='<%# DataBinder.Eval(Container.DataItem, "ImagePath") %>' runat=server/>
  249.  
  250.                                                     <p>
  251.  
  252.                                                     <%# DataBinder.Eval(Container.DataItem, "ProductName") %> <br>
  253.                                                     <%# DataBinder.Eval(Container.DataItem, "UnitPrice", "{0:C}") %><br>
  254.                                                 </td>
  255.                                             </tr>
  256.                                         </table>
  257.                                     </template>
  258.                                              
  259.                                     <template name="selecteditemtemplate">
  260.                                         <table>
  261.                                             <tr>
  262.                                                 <td width="150">
  263.  
  264.                                                     <asp:imagebutton borderwidth=6 bordercolor="red" bubblecommand="select" ImageUrl='<%# DataBinder.Eval(Container.DataItem, "ImagePath") %>' runat=server/>
  265.                                
  266.                                                     <p>
  267.  
  268.                                                     <%# DataBinder.Eval(Container.DataItem, "ProductName") %><br>
  269.                                                     <%# DataBinder.Eval(Container.DataItem, "UnitPrice", "{0:C}") %><br>
  270.                                                 </td>
  271.                                             </tr>
  272.                                         </table>
  273.                                     </template>
  274.  
  275.                                 </asp:datalist>
  276.  
  277.                             </td>
  278.                         </tr>
  279.                     </table>
  280.  
  281.                 </td>
  282.  
  283.                 <td width="315" valign=top class="cart" bgcolor="#EDBE7B">
  284.  
  285.                       <h3>Your Shopping Cart</h3>
  286.  
  287.                                 <asp:datalist id="ShoppingCartList" DataKeyField="Name" borderwidth=0 runat="server">
  288.  
  289.                                     <template name="headertemplate">
  290.  
  291.                                        <table width="100%">
  292.                                           <tr>
  293.                                              <td width=35>
  294.                                                 <b>Qty</b>
  295.                                              </td>
  296.                                              <td width=175>
  297.                                                 <b>Product</b>
  298.                                              </td>
  299.                                              <td width=50>
  300.                                                 <b>Price</b>
  301.                                              </td>
  302.                                              <td align="right" style="padding-right:10">
  303.                                                 <b>Total</b>
  304.                                              </td>
  305.                                           </tr>
  306.  
  307.                                     </template>
  308.  
  309.                                     <template name="itemtemplate">
  310.  
  311.                                           <tr>                       
  312.                                              <td width=35>
  313.                                                 <input type=text size=1 id="Qty" runat=server value='<%# DataBinder.Eval(Container.DataItem, "Quantity") %>'>
  314.                                              </td>
  315.                                              <td width=175>
  316.                                                  <%# DataBinder.Eval(Container.DataItem, "Name") %>
  317.                                              </td>
  318.                                              <td width=50>
  319.                                                  <%# DataBinder.Eval(Container.DataItem, "Price", "{0:C}") %>
  320.                                              </td>
  321.                                              <td align=right style="padding-right:10">
  322.                                                  <%# DataBinder.Eval(Container.DataItem, "Total", "{0:C}") %>
  323.                                              </td>
  324.                                           </tr>
  325.  
  326.                                     </template>
  327.  
  328.                                     <template name="footertemplate">
  329.  
  330.                                        </table>
  331.  
  332.                                     </template>
  333.  
  334.                                 </asp:datalist>
  335.  
  336.                                 <table border=0 width="100%">
  337.                                    <tr>
  338.                                       <td colspan=4><hr></td>
  339.                                    </tr>
  340.                                    <tr>
  341.                                       <td width=52></td>
  342.                                       <td width=225 colspan="2" align="left">
  343.                                         <b>Subtotal</b>
  344.                                       </td>
  345.                                       <td align="right" style="padding-right:10">
  346.                                         <asp:label id="SubTotal" runat=server/>
  347.                                       </td>
  348.                                    </tr>
  349.                                 <tr>
  350.                                    <td width=52></td>
  351.                                    <td width=225 colspan="2" align="left">
  352.                                      <b>Tax</b>
  353.                                    </td>
  354.                                    <td align="right" style="padding-right:10">
  355.                                      <asp:label id="Tax" runat=server/>
  356.                                    </td>
  357.                                 </tr>
  358.                                 <tr>
  359.                                    <td width=52></td>
  360.                                    <td width=225 colspan="2" align="left">
  361.                                       <b>Grand Total</b>
  362.                                    </td>
  363.                                    <td align="right" style="padding-right:10">
  364.                                       <b><asp:label id="Total" runat=server/></b>
  365.                                    </td>
  366.                                 </tr>
  367.                               </table>
  368.  
  369.                               <p>
  370.  
  371.                               <div id="CheckoutPanel" runat="server">
  372.                                  <center>
  373.                                     <asp:imagebutton borderwidth=0 OnClick="Recalculate_Click" ImageUrl='images\recalculate.gif' runat=server/>
  374.                                     <asp:imagebutton borderwidth=0 ImageUrl='images\checkout.gif' runat=server/>
  375.                                     <asp:imagebutton borderwidth=0 OnClick="ClearCart_Click" ImageUrl='images\clear_cart.gif' runat=server/>
  376.                                  </center>
  377.                               </div>
  378.  
  379.                         </td>
  380.                   </tr>
  381.           </table>
  382.     </form>
  383.  
  384. </body>
  385. </html>