APSNET沈士根实验报告四Word文档下载推荐.docx

上传人:b****4 文档编号:7695367 上传时间:2023-05-08 格式:DOCX 页数:19 大小:333.20KB
下载 相关 举报
APSNET沈士根实验报告四Word文档下载推荐.docx_第1页
第1页 / 共19页
APSNET沈士根实验报告四Word文档下载推荐.docx_第2页
第2页 / 共19页
APSNET沈士根实验报告四Word文档下载推荐.docx_第3页
第3页 / 共19页
APSNET沈士根实验报告四Word文档下载推荐.docx_第4页
第4页 / 共19页
APSNET沈士根实验报告四Word文档下载推荐.docx_第5页
第5页 / 共19页
APSNET沈士根实验报告四Word文档下载推荐.docx_第6页
第6页 / 共19页
APSNET沈士根实验报告四Word文档下载推荐.docx_第7页
第7页 / 共19页
APSNET沈士根实验报告四Word文档下载推荐.docx_第8页
第8页 / 共19页
APSNET沈士根实验报告四Word文档下载推荐.docx_第9页
第9页 / 共19页
APSNET沈士根实验报告四Word文档下载推荐.docx_第10页
第10页 / 共19页
APSNET沈士根实验报告四Word文档下载推荐.docx_第11页
第11页 / 共19页
APSNET沈士根实验报告四Word文档下载推荐.docx_第12页
第12页 / 共19页
APSNET沈士根实验报告四Word文档下载推荐.docx_第13页
第13页 / 共19页
APSNET沈士根实验报告四Word文档下载推荐.docx_第14页
第14页 / 共19页
APSNET沈士根实验报告四Word文档下载推荐.docx_第15页
第15页 / 共19页
APSNET沈士根实验报告四Word文档下载推荐.docx_第16页
第16页 / 共19页
APSNET沈士根实验报告四Word文档下载推荐.docx_第17页
第17页 / 共19页
APSNET沈士根实验报告四Word文档下载推荐.docx_第18页
第18页 / 共19页
APSNET沈士根实验报告四Word文档下载推荐.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

APSNET沈士根实验报告四Word文档下载推荐.docx

《APSNET沈士根实验报告四Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《APSNET沈士根实验报告四Word文档下载推荐.docx(19页珍藏版)》请在冰点文库上搜索。

APSNET沈士根实验报告四Word文档下载推荐.docx

[iblNaiEcJ

口blListPriceJ

目品分类[iblFHo]

g晶描

[■"

T'

l・

r

[iblDescn]

库俗[IbLQty]

jfejhkM益昭插K]TgE口【jrgFiglTi

■宗

其中添加DropDownList和GridView控件各一个。

关于其内的详细的Columms设置见书本。

5.编写ProShow.aspx.cs中的方法代码

publicpartialclassProShow:

System.Web.UI.Page

{

〃在所有方法外声明一个MyPetShopDataContext类实例

MyPetShopDataContextdb=newMyPetShopDataContext();

//Page_Load事件,将Category表中的Categoryld和Name字段值填充到ddlCategory下拉列表框,执行方法代码如下。

~

protectedvoidPage_Load(objectsender,EventArgse)

if(!

lsPostBack)

varcategories=fromcindb.Category

selectnew

c.CategoryId,c.Name

};

foreach(varcategoryincategories)

newListitem(category.Name.ToString().

ddlCategory.Items.Add(

category.CategoryId.ToStringO));

}

Bind();

}

/编写自定义方法BindQ,该方法根据选择的Categoryld显示分类中包含的商品。

privatevoidBind()

intcategoryld=int.Parse(ddlCategory.SelectedValue)

selectp;

varproducts=frompindb.Productwherep.Categoryld==categoryId

gvProduct.DataSource=products;

gvProduct.DataBindQ;

//当改变ddlCategory中的分类名后,触发SelectedlndexChanged事件,此时,需要重新在gvProduct中显示该分类名包含的商品

protectedvoidddlCategory_SelectedIndexChanged(objectsender,EventArgse){

//当改变gvProduct的当前页后,触发PagelndexChanging事件,此时,需要重新设置新的页面索引值。

protectedvoidgvProductPageIndexChanging(objectsender,GridViewPageEventArgse)

gvProduct.PageIndex=e.NewPageIndex;

6.设计Profile

操作时,打开MyPetShop网站根文件夹下的Web.config,在<system.web>元素中,编写配置

代码如下:

<

anonymousidentificationenabled="

true"

/>

profile>

properties>

groupname="

Cart"

>

addname="

ProId"

type="

System.Collections.ArrayList"

allowAnonymous="

/>

ProNametype="

allowAnonymous="

Qty"

ListPrice"

addname="

TotalPrice"

/group>

/properties>

/Profile>

7.

设计ShopCart.aspx如图:

其中的Columms属性设置如图:

详细设置见书本。

8.编写ShopCartaspx.cs中的方法代码

Web窗体载入时,触发Page.load事件,将判断从ProShow.aspx传递过来的ProductId是否为空值,若非空,则获取ProductId值,再将ProductId值对应的商品信息添加到购物车。

然后,显示购物车中包含的商品数据。

代码如下:

protectedvoidPageLoad(objectsender.EventArgse)

if(Request.QueryString["

ProductId"

]!

=null)

]);

intid=int.Parse(Request.QueryString["

AddProduct(id);

}//自定义方法AddProductsntid),将指定商品编号的商品添加到购物车:

protectedvoidAddProduct(intid)

intisExit=0;

for(intj=0;

j<

Profile.Cart.ProName.Count;

j++)

{I

if(id==(int)Profile.Cart.Prold[j])

ints=(int)Profile.Cart.Qty。

];

S++;

Profile.Cart.Qty。

]=s;

Profile.Save();

isExit=1;

MyPetShopDataContextdb=newMyPetShopDataContext();

varproduct=(frompindb.Productwherep.Productid==idselectp).First();

Profile.Cart.ListPrice.Add(product.ListPrice);

Profile.Cart.Qty.Add

(1);

Profile.Cart.Prold.Add(product.ProductId);

Profile.Cart.ProName.Add(product.Name);

//编写自定义方法Bind(),该方法将Profile.Cart中的所有购物记录存放到一个数据表dt中,

再将dt作为数据源,绑定到gvCart。

ProtectedvoidBindO

Profile.Cart.TotalPnce=TotalPriceQ.ToStringQ;

lblTotalPrice.Text=Profile.Cart.TotalPrice;

DataTabledt=newDataTable();

dt.Columns.Add(

"

ProId"

);

ProName"

ListPrice"

for(inti=0;

i<

i++)

DataRowrow=dt.NewRow();

row[0]=Profile.Cart.Prold[i];

row[1]=Profile.Cart.ProName[i];

row[2]=Profile.Cart.ListPrice[i];

row[3]=Profile.Cart.Qty[i];

dt.Rows.Add(row);

gvCart.DataSource=dt;

gvCart.DataBind();

//编写自定义方法TotalPrice(),该方法用于计算机购物车中的购物总金额

protecteddecimalTotalPrice()

decimalsum=0;

for(intj=O;

jvProfile.Cart.ProName.Count;

intqty=(int)Profile.Cart.Qty[j];

decimallistPrice=(decimal)Profile.Cart.ListPrice[j];

sum+=qty*listPrice;

returnsum;

//按钮btnDelete的Click事件

protectedvoidbtnDeleteClick(objectsender,EventArgse)

intproductId=0;

gvCart.Rows.Count;

CheckBoxchkProduct=newCheckBox();

chkProduct=(CheckBoXigvCart.Rows[i].FindControl("

chkProduct"

if(chkProduct!

if(chkProduct.Checked)

int.Parse(gvCart.Rows[i].Cells[1].Text);

productld=

DeleteProduct(productid);

_}

//自定义方法DeleteProduct(intid),用于在购物车中删除指定购物记录

protectedvoidDeleteProduct(intid)

intj=0;

for(inti=0;

if(id==(int)Profile.Cart.Prold[i])

j=i;

break;

Profile.Cart.ListPrice.RemoveAt(j);

Profile.Cart.Prold.RemoveAt(j);

Profile.Cart.ProName.RemoveAt(j);

Profile.Cart.Qty.RemoveAt(j);

Profile.SaveO;

//按钮btnClear的Click事件

protectedvoidbtnClearClick(objectsender,EventArgse)

Profile.Cart.Qty.Clear();

Profile.Cart.ProName.Clear();

Profile.Cart.Prold.Clear();

Profile.Cart.ListPrice.Clear();

ProShow.aspx"

Response.Redirect(

//按钮btnComputeAgain的Click事件

protectedvoidbtnComputeAgain_Click(objectsender.EventArgse)

MyPetShopDataContextdb=newMyPetShopDataContext();

for(inti=0;

//自定义方法ChangeQty,根据指定商品编号修改对应的购买数量

ProtectedvoidChangeQty(intid,intqty)

if(id==(int)Profile.Cart.Prold[i])

Profile.Cart.Qty[i]=qty;

//按钮btnSettle的Click事件

protectedvoidbtnSettle_Click(objectsender,EventArgse)

9.设计SumbitCart.aspx。

10.编写SumbitCart.aspx.cs中的方法代码:

protectedvoidbtnSubmit_Click1(objectsender,EventArgse)

Orderorder=newOrder();

order.UserName="

张三"

;

order.OrderDate=

DateTime.Now;

order.Addr1=txtZip.Text.Trim();

order.Zip=txtZip.Text.TrimO;

order.Phone=txtPhone.Text.Trim();

order.Status="

未审核"

db.Order.lnsertOnSubmit(order);

db.SubmitChangesO;

intid=order.Orderld;

OrderItemorderItem=newOrderItem();

orderltem.Orderld=id;

orderItem.ProName=(

string)Profile.Cart.ProName[i];

orderltem.ListPrice=(

decimal)Profile.Cart.ListPrice[i];

orderltem.Qty=(

int)Profile.Cart.Qty[i];

orderltem.TotalPrice=(

(int)Profile.Cart.ListPrice[i];

int)Profile.Cart.Qty[i]*

db.Orderltem.InsertOnSubmit(orderltem);

db.SubmitChanges();

varproduct=(

fromcindb.Productwherec.Productld==

(int)Profile.Cart.Prold[i]

selectc).First();

product.Qty-=orderltem.Qty;

Profile.Cart.ProName.Clear();

Profile.Cart.ListPrice.Clear();

HH

Profile.Cart.Qty.ClearQ;

Profile.Cart.TotalPrice=

11.从浏览ProShow.aspx开始对MyPetShop进行测试。

分类名’両

购物

Id

拥m:

名称

商砧价格

购英数fj;

Fnvhl

FniNunw

LhtPrke

Qty

D

1

Meno

12.10

|2

填写发货地址

控件实现数据插入、编辑、删除等操作

2.设利用DetailsView

⑴设计Web窗体:

ProductId

CategoryId

ListPrice

UnitCostSuppldNameDescnImage

LinqDataSource-IdsProduct

LinqDataSource-IdsCategory

LinqiDataSource-ld$9upplier

⑵①添加一个DetailsView控件和三个LinqDataSource控件,分别设其ID的属性值为:

dvProduct、

IdsProduct、ldsCategory和口ldsSupplier

②:

如图配置ldsProduct的数据源为Product表。

LinqDataSource任务

記區^J|<

f=5MSE

LinqDataSourC€-IdsProductP

LinqDataSource-ldsCategory

S启用更新

土启用LinqOataSource行目动U除卫)

③配置Category表如同步骤②④配置Supplier表如同步骤②⑤单击dvProduct的智能标记,选择数据源为ldsProduct启用分页插入、编辑、删除,单击“编辑字段"

将CategoryId和Suppid字段转化为TemplateField字段

榕此学瘢舷为恪绘Fimld

⑥配置Categoryld和Suppid字段如下图:

dvProduct-Field[l]-Categoryld

ItemTempfateiLabell]

AlternatingltemTerriplate

EdiitltemTemplate

InsertltemTemplate

I]数据绑定二J

HeaderTemplate

Productid

I

Categoryld

UnitCost

11.40

Suppid

Name

Veno

Desen

Image

\Pfadlraage&

FisK/meno,gii

100

编辑删除新建

12345678910

⑥浏览效果如下:

Productid2

ListPhee

Cat亡goryId

28.50

25.50

Eucalyptus

7ProdJmages/Fish/euc;

123456789

实验八拓展

在ItemTemple中插入两列如图:

(1)修改ProShow.aspx页面,要求增加“商品编号”和“商品分类号”的显示。

此步骤以在前面的实验中实现,

mpiare

然后再将Lable

]asp:

L3De鬥DI岡o|肺LiDil^ainej

[UJNq]口二尿I曲

D3taB!

ndings.,J

之后再编辑中输入

ind「Produ

(三)实验心得

1、遇到的问题和解决方法:

①实验中经常遇到SQL数据库版本过低不能加载的问题,也不知道为什么。

重启之后解决了。

2、收获:

回顾本次的实验目的,首先是要我们掌握ListControl类控件与数据源的绑定方法,其实在

前面的有一章已经使用过该控件,而经过这次制作学会了如何在ListControl类控件中显示

数据库数据。

接着是要我们熟练掌握GridView控件的应用,实验中让我体会最深的就是这

个控件用来显示二维表格式的数据,它能很方便的实现数据绑定、分页、排序、行选择、更

新、删除等等功能。

最后是DetailsView控件的应用,在制作前我浏览的书本,书本上的

特点就是表格只包含两个数据

GridView相比较就是多了

介绍是此控件以表格型式显示和处理来自数据库的单条记录,列。

一个逐行显示各字段名,一个显示对应字段名的数据值。

一个数据插入的功能。

在做完之后我发现了其实结合GridView和DetailsView管理数据是

非常方便的一个用于显示一个用于修改。

本次实验的编码的数据量比前面几个实验都要大,但用心做其实也不是非常难。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2