Task1.aspx
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Task1.aspx.vb" Inherits="Task1" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Page Processing Demo</title>
</head>
<body>
<form id="form1" runat="server">
<h2>Page Processing Events Demo</h2>
<asp:Button ID="Button1"
runat="server"
Text="Click Me"
OnClick="Button1_Click" />
<br /><br />
<div>
<a href="dashboard.html" class="btn">Back to Lab 04</a>
</div>
<asp:Label ID="Label1" runat="server"></asp:Label>
</form>
</body>
</html>
Task1.aspx.vb
Partial Class Task1
Inherits System.Web.UI.Page
Protected Sub Page_Init(sender As Object, e As EventArgs) Handles Me.Init
Label1.Text &= "Page Init fired <br/>"
End Sub
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
Label1.Text &= "Page Load fired <br/>"
End Sub
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Label1.Text &= "Button Click fired <br/>"
End Sub
Protected Sub Page_PreRender(sender As Object, e As EventArgs) Handles Me.PreRender
Label1.Text &= "Page PreRender fired <br/>"
End Sub
Protected Sub Page_Unload(sender As Object, e As EventArgs) Handles Me.Unload
System.Diagnostics.Debug.WriteLine("Page Unload fired")
End Sub
End Class
LoginChoice.aspx
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="LoginChoice.aspx.vb" Inherits="LoginChoice" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Login Choice</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<form id="form1" runat="server">
<div class="container">
<h2>Login As</h2>
<asp:Button ID="btnEmployee" runat="server" Text="Employee" CssClass="btn" OnClick="btnEmployee_Click" />
<br /><br />
<asp:Button ID="btnCustomer" runat="server" Text="Customer" CssClass="btn" OnClick="btnCustomer_Click" />
</div>
</form>
</body>
</html>
LoginChoice.aspx.vb
Partial Class LoginChoice
Inherits System.Web.UI.Page
Protected Sub btnEmployee_Click(sender As Object, e As EventArgs)
Response.Redirect("EmployeeLogin.aspx")
End Sub
Protected Sub btnCustomer_Click(sender As Object, e As EventArgs)
Response.Redirect("main.aspx")
End Sub
End Class
EmployeeLogin.aspx
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="EmployeeLogin.aspx.vb" Inherits="EmployeeLogin" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Employee Login</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<form id="form1" runat="server">
<div class="auth-box">
<h2>Employee Login</h2>
<asp:TextBox ID="txtEmail" runat="server" Placeholder="Email"></asp:TextBox>
<asp:TextBox ID="txtPassword" runat="server" TextMode="Password" Placeholder="Password"></asp:TextBox>
<asp:Button ID="btnLogin" runat="server" Text="Login" CssClass="btn" OnClick="btnLogin_Click" />
<asp:Label ID="lblMsg" runat="server" ForeColor="Red"></asp:Label>
</div>
</form>
</body>
</html>
EmployeeLogin.aspx.vb
Partial Class EmployeeLogin
Inherits System.Web.UI.Page
Protected Sub btnLogin_Click(sender As Object, e As EventArgs)
If txtEmail.Text = "admin" And txtPassword.Text = "1234" Then
Session("Employee") = txtEmail.Text
Response.Redirect("employee_dashboard.aspx")
Else
lblMsg.Text = "Invalid Email or Password"
End If
End Sub
End Class
EmployeeDashboard.aspx
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="employee_dashboard.aspx.vb" Inherits="employee_dashboard" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Employee Dashboard</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<form id="form1" runat="server">
<header>
<h1>Employee Dashboard</h1>
</header>
<nav>
<ul>
<li>
<asp:HyperLink ID="hlUpdateCatalog" runat="server" NavigateUrl="update_catalog.aspx" Text="Update Product Catalog" />
</li>
<li>
<asp:HyperLink ID="btnLogout" runat="server" NavigateUrl="LoginChoice.aspx" Text="Logout" />
</li>
</ul>
</nav>
<div class="container">
<h2>Welcome, Employee!</h2>
<p>Select an option from the menu above to proceed.</p>
</div>
</form>
</body>
</html>
EmployeeDashboard.aspx.vb
Partial Class employee_dashboard
Inherits System.Web.UI.Page
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Session("Employee") Is Nothing Then
Response.Redirect("EmployeeLogin.aspx")
End If
End Sub
Protected Sub btnLogout_Click(sender As Object, e As EventArgs)
Session.Clear()
Response.Redirect("LoginChoice.aspx")
End Sub
End Class
update_catalog.aspx
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="update_catalog.aspx.vb" Inherits="_update_catalog" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Update Catalog</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<form id="form1" runat="server">
<header>
<h1>Product Catalog Update</h1>
</header>
<div class="container">
<h3>Edit Product</h3>
Name:
<asp:TextBox ID="txtName" runat="server" />
<br /><br />
Description:
<asp:TextBox ID="txtDesc" runat="server" TextMode="SingleLine" />
<br /><br />
Price:
<asp:TextBox ID="txtPrice" runat="server" />
<br /><br />
<asp:Button ID="btnConfirm" runat="server" Text="Confirm Changes" OnClick="btnConfirm_Click" />
<br /><br />
<asp:Label ID="lblMessage" runat="server" />
<br />
<asp:HyperLink ID="hlBack" runat="server" NavigateUrl="employee_dashboard.aspx">
Back
</asp:HyperLink>
</div>
</form>
</body>
</html>
update_catalog.aspx.vb
Partial Class _update_catalog
Inherits System.Web.UI.Page
Protected Sub btnConfirm_Click(sender As Object, e As EventArgs) Handles btnConfirm.Click
If txtName.Text = "" Or txtDesc.Text = "" Or txtPrice.Text = "" Then
lblMessage.Text = "Please fill all fields."
Else
lblMessage.Text = "Product updated successfully!"
End If
End Sub
End Class
main.aspx
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="main.aspx.vb" Inherits="_main" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Pine Valley Furniture</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<form id="form1" runat="server">
<header>
<h1>Pine Valley Furniture</h1>
</header>
<nav>
<ul>
<li><a href="register.aspx">Customer Registration</a></li>
<li><a href="search.aspx">Search Products</a></li>
<li><a href="Cart.aspx">Cart</a></li>
<li><a href="help.aspx">Help</a></li>
</ul>
</nav>
<div class="container">
<h2>Welcome to Pine Valley Furniture</h2>
<asp:HyperLink ID="ShopNowLink" runat="server" NavigateUrl="search.aspx">
<asp:Button ID="btnShopNow" runat="server" Text="Shop Now" CssClass="btn" />
</asp:HyperLink>
</div>
<footer>
Contact us: 0309-5878126 | Email: hhm@gmail.com
</footer>
</form>
</body>
</html>
main.aspx.vb
Partial Class _main
Inherits System.Web.UI.Page
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
End Sub
End Class
Register.aspx
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Register.aspx.vb" Inherits="Register" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Customer Registration</title>
<link href="style.css" rel="stylesheet" />
</head>
<body>
<form id="form1" runat="server">
<header>
<h1>Customer Registration</h1>
</header>
<nav>
<ul>
<li><a href="Main.aspx">Home</a></li>
<li><a href="Register.aspx">Register</a></li>
<li><a href="Cart.aspx">Cart</a></li>
</ul>
</nav>
<div class="container">
<div class="auth-box">
<h2>Create Account</h2>
<asp:TextBox ID="txtName" runat="server" CssClass="input-field" placeholder="Full Name" />
<br /><br />
<asp:TextBox ID="txtEmail" runat="server" CssClass="input-field" placeholder="Email" />
<br /><br />
<asp:TextBox ID="txtPassword" runat="server" TextMode="Password" CssClass="input-field" placeholder="Password" />
<br /><br />
<asp:TextBox ID="txtConfirmPassword" runat="server" TextMode="Password" CssClass="input-field" placeholder="Confirm Password" />
<br /><br />
<asp:TextBox ID="txtAddress" runat="server" CssClass="input-field" placeholder="Address" />
<br /><br />
<asp:TextBox ID="txtCity" runat="server" CssClass="input-field" placeholder="City" />
<br /><br />
<asp:TextBox ID="txtState" runat="server" CssClass="input-field" placeholder="State" />
<br /><br />
<asp:TextBox ID="txtPostal" runat="server" CssClass="input-field" placeholder="Postal Code" />
<br /><br />
<asp:Button ID="btnSubmit" runat="server" Text="Register" CssClass="btn" OnClick="btnSubmit_Click" />
<br /><br />
<asp:Label ID="lblMessage" runat="server" />
</div>
</div>
</form>
</body>
</html>
Register.aspx.vb
Partial Class Register
Inherits System.Web.UI.Page
Protected Sub btnSubmit_Click(sender As Object, e As EventArgs)
If txtPassword.Text <> txtConfirmPassword.Text Then
lblMessage.ForeColor = Drawing.Color.Red
lblMessage.Text = "Passwords do not match!"
Exit Sub
End If
lblMessage.ForeColor = Drawing.Color.Green
lblMessage.Text = "Registration Successful!"
End Sub
End Class
Cart.aspx
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Cart.aspx.vb" Inherits="Cart" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Shopping Cart</title>
<link href="style.css" rel="stylesheet" />
</head>
<body>
<form id="form1" runat="server">
<header>
<h1>Shopping Cart</h1>
</header>
<nav>
<ul>
<li><a href="main.aspx">Home</a></li>
<li><a href="Register.aspx">Register</a></li>
<li><a href="Cart.aspx">Cart</a></li>
</ul>
</nav>
<div class="container">
<div class="product-grid">
<asp:Repeater ID="rptCart" runat="server">
<ItemTemplate>
<div class="product-card">
<div class="image-box"></div>
<h3><%# Eval("ProductName") %></h3>
<p>Price: $<%# Eval("Price") %></p>
<p>Quantity: <%# Eval("Quantity") %></p>
</div>
</ItemTemplate>
</asp:Repeater>
</div>
<br />
<asp:Button
ID="btnCheckout"
runat="server"
Text="Proceed to Checkout"
CssClass="btn"
PostBackUrl="~/payment.aspx" />
</div>
</form>
</body>
</html>
Cart.aspx.vb
Partial Class Cart
Inherits System.Web.UI.Page
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
rptCart.DataSource = GetCartItems()
rptCart.DataBind()
End If
End Sub
Private Function GetCartItems() As Array
Return New Object() {
New With {.ProductName = "Chair", .Price = 50, .Quantity = 2},
New With {.ProductName = "Table", .Price = 120, .Quantity = 1},
New With {.ProductName = "Lamp", .Price = 30, .Quantity = 3}
}
End Function
End Class
Help.aspx
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Help.aspx.vb" Inherits="Help" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Help</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<form id="form1" runat="server">
<header>
<h1>Help & User Guide</h1>
</header>
<nav>
<ul>
<li><a href="main.aspx">Home</a></li>
<li><a href="Register.aspx">Register</a></li>
<li><a href="Search.aspx">Search</a></li>
<li><a href="Cart.aspx">Order</a></li>
</ul>
</nav>
<div class="container">
<h3>New Customer Registration</h3>
<p>Customers can register by filling their name, address, city, state and postal code.</p>
<p><a href="Register.aspx">Go to Registration Page</a></p>
<hr />
<h3>Search Products</h3>
<p>Users can search products by description and product line.</p>
<p><a href="Search.aspx">Go to Search Page</a></p>
<hr />
<h3>Product Selection & Order Placement</h3>
<p>Customers can select products, enter quantity and place orders.</p>
<p><a href="Cart.aspx">Go to Order Page</a></p>
<hr />
<h3>Product Catalog Update</h3>
<p>Only employees can update product description, finish and price.</p>
<p><a href="Employee_Login.aspx">Employee Login</a></p>
<hr />
<h3>Payment Provision</h3>
<p>Customers can select payment method after placing order.</p>
<p><a href="Payment.aspx">Go to Payment Page</a></p>
</div>
<footer>
Contact us: 0309-5878126 | Email: hhm@gmail.com
</footer>
</form>
</body>
</html>
Help.aspx.vb
Partial Class Help
Inherits System.Web.UI.Page
End Class
Search.aspx
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="search.aspx.vb" Inherits="search" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Search Products - Pine Valley Furniture</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<form id="form1" runat="server">
<header>
<h1>Search Products</h1>
</header>
<nav>
<ul>
<li><a href="main.aspx">Home</a></li>
<li><a href="register.aspx">Register</a></li>
<li><a href="help.aspx">Help</a></li>
</ul>
</nav>
<div class="container">
<asp:Label Text="Search Product:" runat="server" />
<asp:TextBox ID="txtSearch" runat="server"></asp:TextBox>
<asp:Button ID="btnSearch"
runat="server"
Text="Search"
CssClass="btn"
OnClick="btnSearch_Click" />
<asp:Button ID="btnShowAll"
runat="server"
Text="Show All"
CssClass="btn"
OnClick="btnShowAll_Click" />
<br /><br />
<asp:Label ID="lblMessage" runat="server"></asp:Label>
<div class="product-grid">
<asp:Repeater ID="rptProducts" runat="server">
<ItemTemplate>
<div class="product-card">
<div class="image-box"></div>
<h3><%# Eval("Product_Description") %></h3>
<p>Finish: <%# Eval("Product_Finish") %></p>
<p>Price: $<%# Eval("Standard_Price") %></p>
</div>
</ItemTemplate>
</asp:Repeater>
</div>
</div>
</form>
</body>
</html>
search.aspx.vb
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration
Imports System.Web.UI
Partial Class search
Inherits Page
Protected Sub btnSearch_Click(sender As Object, e As EventArgs) Handles btnSearch.Click
Dim constr As String
constr = ConfigurationManager.ConnectionStrings("PVFC").ConnectionString
Dim con As New SqlConnection
con.ConnectionString = constr
Dim cmd As New SqlCommand
cmd.Connection = con
cmd.CommandText = "SELECT Product_Id, Product_Description, Product_Finish, Standard_Price "
cmd.CommandText &= "FROM PRODUCT_t "
cmd.CommandText &= "WHERE Product_Description LIKE @search"
cmd.Parameters.AddWithValue("@search", "%" & txtSearch.Text & "%")
Dim dr As SqlDataReader
Try
con.Open()
dr = cmd.ExecuteReader()
If dr.HasRows = False Then
rptProducts.DataSource = Nothing
rptProducts.DataBind()
lblMessage.Text = "No match found."
Else
rptProducts.DataSource = dr
rptProducts.DataBind()
lblMessage.Text = "Product(s) found."
End If
Catch ex As Exception
lblMessage.Text = "Database Error: " & ex.Message
Finally
con.Close()
cmd.Dispose()
End Try
End Sub
Protected Sub btnShowAll_Click(sender As Object, e As EventArgs) Handles btnShowAll.Click
Dim constr As String
constr = ConfigurationManager.ConnectionStrings("PVFC").ConnectionString
Dim con As New SqlConnection
con.ConnectionString = constr
Dim cmd As New SqlCommand
cmd.Connection = con
cmd.CommandText = "SELECT Product_Id, Product_Description, Product_Finish, Standard_Price "
cmd.CommandText &= "FROM PRODUCT_t"
Dim dr As SqlDataReader
Try
con.Open()
dr = cmd.ExecuteReader()
If dr.HasRows = False Then
rptProducts.DataSource = Nothing
rptProducts.DataBind()
lblMessage.Text = "No products available."
Else
rptProducts.DataSource = dr
rptProducts.DataBind()
lblMessage.Text = "All products loaded successfully."
End If
Catch ex As Exception
lblMessage.Text = "Database Error: " & ex.Message
Finally
con.Close()
cmd.Dispose()
End Try
End Sub
End Class
Payment.aspx
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="payment.aspx.vb" Inherits="_payment" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Payment</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<form id="form1" runat="server">
<header>
<h1>Payment Options</h1>
</header>
<div class="container">
<asp:RadioButton ID="rbCash" runat="server" GroupName="Payment" Text="Cash on Delivery" /><br />
<asp:RadioButton ID="rbCard" runat="server" GroupName="Payment" Text="Credit/Debit Card" /><br />
<asp:RadioButton ID="rbWallet" runat="server" GroupName="Payment" Text="Other Wallet" /><br /><br />
<asp:Button ID="btnConfirm"
runat="server"
Text="Confirm Payment"
CssClass="btn"
OnClick="btnConfirm_Click" /><br /><br />
<asp:HyperLink ID="hlBack" runat="server" NavigateUrl="main.aspx">Back</asp:HyperLink>
</div>
</form>
</body>
</html>
payment.aspx.vb
Partial Class _payment
Inherits System.Web.UI.Page
Protected Sub btnConfirm_Click(sender As Object, e As EventArgs)
If rbCash.Checked Then
Response.Write("<script>alert('Cash on Delivery Selected');</script>")
ElseIf rbCard.Checked Then
Response.Write("<script>alert('Card Payment Selected');</script>")
ElseIf rbWallet.Checked Then
Response.Write("<script>alert('Wallet Selected');</script>")
Else
Response.Write("<script>alert('Please select payment method');</script>")
End If
End Sub
End Class
style.css
html, body {
height: 100%;
margin: 0;
}
body {
font-family: Arial, sans-serif;
display: flex;
flex-direction: column;
background-color: #FFF2E0;
color: #2d2d2d;
}
form {
flex: 1;
display: flex;
flex-direction: column;
}
header {
background: #898AC4;
color: white;
padding: 15px;
text-align: center;
}
nav ul {
list-style-type: none;
background-color: #A2AADB;
padding: 0;
margin: 0;
overflow: hidden;
}
nav ul li {
float: left;
}
nav ul li a {
display: block;
color: #FFF2E0;
padding: 12px 18px;
text-decoration: none;
}
nav ul li a:hover {
background-color: #C0C9EE;
color: #FFF2E0;
}
.container {
flex: 1;
padding: 25px;
}
button, .btn {
padding: 10px 18px;
background: #A2AADB;
color: white;
border: none;
border-radius: 8px;
cursor: pointer;
}
button:hover, .btn:hover {
background: #898AC4;
}
footer {
background-color: #C0C9EE;
text-align: center;
padding: 12px;
width: 100%;
}
.product-grid {
display: flex;
flex-wrap: wrap;
gap: 20px;
}
.product-card {
background: #C0C9EE;
padding: 15px;
border-radius: 10px;
width: 200px;
text-align: center;
}
.image-box {
width: 100%;
height: 120px;
background-color: #A2AADB;
border-radius: 8px;
margin-bottom: 10px;
}
.auth-box {
width: 350px;
background: white;
padding: 25px;
border-radius: 12px;
box-shadow: 0px 0px 15px rgba(0,0,0,0.2);
margin: auto;
margin-top: 120px;
text-align: center;
}
.auth-box input, .auth-box .btn {
width: 100%;
padding: 10px;
margin-top: 10px;
}