asp实训报告
《Web程序设计》
实
训
报
告
班级:
姓名:
学号:
实训地点:
指导老师:
实训世间:
四川建筑职业技术学院
2012年6月14日
《Web程序设计》
一、实训要点:
1、了解MyPetShop系统的总体设计;
2、熟悉系统数据库设计;
3、掌握用户控件设计;
4、掌握前台功能模块设计;
5、掌握购物车模块;
6、掌握订单模块;
7、掌握后台功能管理模块。
二、实训内容:
●系统功能模块设计:
MyPetShop系统是一个具备基本功能的电子商务网站。系统主要包括五个功能模块:前台商品浏览模块、用户注册登录模块、购物车模块、订单结算模块和后台管理功能模块。
●网页制作的具体操作:
a、创建aspx文件:
通过对项目的分析,本项目共要创建14个aspx文件:
由于本项目是在同一个网页中显示不同的效果,所以要创建一个母版页:
创建好母版页后对母版页增加相应的控件以下为添加控件的截图:
通过添加各种控件得到以下的母版页样式:
以下为母版页的响应代码:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using MyPetShop;
public partial class MasterPage : System.Web.UI.MasterPage {
protected void Page_Load(object sender, EventArgs e)
{
Initialize(); //调用自定义方法Initialize()
}
///
///网站初始化,添加两个角色(Member和Admin)到数据库ASPNETDB中
///
protected void Initialize()
{
if (Roles.GetAllRoles().Length == 0)
{
Roles.CreateRole("Member");
Roles.CreateRole("Admin");
}
}
protected void lnkbtnReset_Click(object sender, EventArgs e)
{
//得到页面上的WebPartManager控件,并重置其个性化属性
WebPartManager webPartManager = new WebPartManager();
webPartManager = WebPartManager.GetCurrentWebPartManager(Page);
webPartManager.Personalization.ResetPersonalizationState();
}
protected void imgbtnSearch_Click(object sender, ImageClickEventArgs e) {
//如果搜索框不为空,以Get形式传递搜索文本到Search.aspx
string strQuery = "";
if (txtSearch.Text.Trim() == "")
{
strQuery = "";
}
else
{
strQuery = "?SearchText=" + txtSearch.Text.Trim();
}
Response.Redirect("~/Search.aspx" + strQuery, true);
}
}
做好母版页后,我们就应该从各个响应开始做起:
1、登录响应:
截图:
添加好控件后对控件进行属性设置,设置好后写上相应的响应代码:using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Login1.Focus();
}
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
}
}
2、注册界面:
截图:
响应代码:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class NewUser : System.Web.UI.Page
{
protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e) {
//将注册的用户添加到"Member"角色
Roles.AddUserToRole(https://www.360docs.net/doc/737978700.html,erName, "Member");
}
}
3、找回密码界面:
界面:
响应代码:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class GetPwd : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void PasswordRecovery1_SendingMail(object sender, MailMessageEventArgs e) {
}
}
4、更改密码界面:
截图:
响应代码:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class ChangePwd : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void LoginView1_ViewChanged(object sender, EventArgs e) {
}
}
5、导航页:
截图:
6、客户界面:
截图:
响应代码:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts; using System.Xml.Linq;
using MyPetShop;
public partial class OrderList : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//如果匿名访问,转到登录页面
if (!User.Identity.IsAuthenticated)
{
Response.Redirect("~/Login.aspx", true);
}
Bind(); //调用自定义方法Bind()
}
///
///显示登录的用户名对应的订单列表
///
protected void Bind()
{
DataConn dataconn = new DataConn();
var orderItems = from o in dataconn.OrderItem
where https://www.360docs.net/doc/737978700.html,erName == https://www.360docs.net/doc/737978700.html,
select o;
gvOrderItem.DataSource = orderItems;
gvOrderItem.DataBind();
}
protected void GridView1_PageIndexChanging(Object sender, GridViewPageEventArgs e) {
gvOrderItem.PageIndex = e.NewPageIndex;
Bind();
}
protected void gvOrderItem_SelectedIndexChanged(object sender, EventArgs e)
{
}
}
7、产品介绍界面:
截图:
响应代码:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts; using System.Xml.Linq;
using MyPetShop;
public partial class ProShow : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString.Count == 0)
{
Response.Redirect("Default.aspx", true);
}
else
{
Bind(); //调用自定义方法Bind()
}
}
///
///根据从NewProduct.ascx、Category.ascx、PetTree.ascx传递过来的ProductId或CategoryId值,显示与ProductId值相等的单个商品信息,或者显示CategoryId确定的分类中所有的商品信息///
protected void Bind()
{
DataConn dataconn = new DataConn();
if (Request.QueryString["ProductId"] != null)
{
int productId = int.Parse(Request.QueryString["ProductId"]);
var products = from p in dataconn.Product
where p.ProductId == productId
select p;
gvProduct.DataSource = products;
gvProduct.DataBind();
}
if (Request.QueryString["CategoryId"] != null)
{
int categoryId = int.Parse(Request.QueryString["CategoryId"]);
var products = from p in dataconn.Product
where p.CategoryId == categoryId
select p;
gvProduct.DataSource = products;
gvProduct.DataBind();
}
}
protected void gvProduct_PageIndexChanging(Object sender, GridViewPageEventArgs e)
{
gvProduct.PageIndex = e.NewPageIndex;
Bind(); //调用自定义方法Bind()
}
protected void gvProduct_SelectedIndexChanged(object sender, EventArgs e)
{
}
}
8、收索页设置:
截图:
响应代码:
using System;
using System.Linq;
using System.Web.UI.WebControls;
using System.Data.Linq.SqlClient;
using MyPetShop;
public partial class Search : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Bind(); //调用自定义方法Bind()
}
}
///
///根据从MasterPage.master传递过来的SearchText值,模糊查询与SearchText值匹配的所有商品信息并显示
///
protected void Bind()
{
if (Request.QueryString["SearchText"] != null)
{
string strSearchText = Request.QueryString["SearchText"].ToString();
DataConn dataconn = new DataConn();
var products = from p in dataconn.Product
where SqlMethods.Like(https://www.360docs.net/doc/737978700.html,, "%" + strSearchText.Trim() + "%")
select p;
gvProduct.DataSource = products;
gvProduct.DataBind();
}
else
{
lblError.Text = "无搜索结果!";
}
}
protected void gvProduct_PageIndexChanging(Object sender, GridViewPageEventArgs e)
{
gvProduct.PageIndex = e.NewPageIndex;
Bind(); //调用自定义方法Bind()
}
}
9、主页的制作:
响应代码:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//设置个性重置按钮可用
LinkButton lnkbtnReset = new LinkButton();
lnkbtnReset = (LinkButton)Page.Master.FindControl("lnkbtnReset");
if (User.Identity.IsAuthenticated)
{
lnkbtnReset.Enabled = true;
}
}
}
10、天气界面的设置:
截图:
因为本项目是一个商业性的网址,所以会有大量的数据进行储存,一下是
创建数据库的过程:
截图:
给数据库加“表”:定义“表”:
给“表”增添数据:
以下为最终结果运行截图: