APSNET沈士根实验报告五Word文件下载.docx

上传人:b****3 文档编号:6932877 上传时间:2023-05-07 格式:DOCX 页数:19 大小:121.73KB
下载 相关 举报
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

port="

25"

userName="

/>

/smtp>

/mailSettings>

③在Admin文件夹下,建立用于实现Admin文件夹授权的Web.config,代码如下:

<

?

xmlversion="

1.0"

encoding="

utf-8"

system.web>

authorization>

--允许Admin角色中用户访问Admin文件夹-->

allowroles="

Admin"

/>

--拒绝Member角色中用户反问Admin文件夹-->

denyroles="

Member"

--拒绝匿名用户访问Admin文件夹-->

denyusers="

/authorization>

/system.web>

/configuration>

1.修改ProShow.aspx和ProShow.aspx.cs。

①备份原先的ProShow.aspx和ProShow.aspx.cs文件。

需要注意的是,本步骤不是必须的,但建议养成在修改文件之前先备份文件夹的习惯。

②在ProShow.aspx的源视图中,将光标定位在<

form...>

和<

div>

两个标记间,添加一个<

section>

/section>

③切换到设计视图,在<

header>

元素中添加一个用于布局的三行四列表格,再向相应的单元格中添加一个Image、三个LinkButton控件和一个LoginView控件,输入您的位置。

并设置相应的ID属性和相应的样式。

如下图1所示。

④设置LoginView控件的ID属性值为logvHeader。

单击logvHeader的智能标记,选择编辑RoleGroups选项,在呈现的对话框中添加如图2,所示的2个角色。

 

图1

图2

⑤单击logvHeader的智能标记,选择AT视图,输入“您还未登录!

”;

选择RoleGroup[0]-Admin视图,添加一个LoginName控件、两个LinkButton控件和一个LoginStatus控件;

选择RoleGroup[0]-Member视图,添加一个LoginName控件、两个LinkButton控件和一个LoginStatus控件,各控件属性设置后的效果如图:

9.设计NewUser.aspx

在源视图中,将ProShow.aspx中的整个<

元素复制到<

两个标记间。

将原来的<

/div>

更改为<

在<

元素中添加一个CreateUserWizard控件。

最终设计界面如图:

CreateUserWizard控件

的属性设置见书本。

需要注意的是,MailDefinition属性集中的From属性值应根据Web.config文件的<

元素中的邮箱信息进行设置。

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

在NewUser.aspx.cs中,添加lnkbtnRegister和lnkbtnLogin链接按钮被单击后触发Click事件时执行的方法代码。

当成功注册用户后,触发CreateUserWizard1.CreateUser事件,执行的方法代码如下:

protectedvoidCreateUserWizard1_CreatedUser(objectsender,EventArgse)

{

Roles.AddUserToRole(CreateUserWizard1.UserName,"

);

}

11.在源视图中,将ProShow.aspx中的整个<

元素中添加一个Login控件。

如图:

13.设计GetPwd.aspx

元素中添加一个PasswordRecovery控件。

设计后如图:

设置PasswordRecovery控件的MailDefinition属性集中的BodyFileName属性值为~/GetPwd.txt,MailDefinition属性集中的其他属性设置参考第9部NewUser中的设置。

14.设计ChangePwd.aspx

元素中添加一个LoginView控件。

21.编写RolesUsers.aspx.cs中的方法代码

添加lnkbtnRegister和lnkbtnLogin链接按钮被单击后触发Click事件时执行的方法代码。

页面首次载入时,将绑定所以角色到lstRoles和所有用户到lstUsers。

页面往返后,将判断当前是否已选择角色,若是,则调用自定义方法GetUsersInRole()显示已选择角色中的用户,执行的方法代码如下:

protectedvoidPage_Load(objectsender,EventArgse)

if(!

IsPostBack)

string[]roles=Roles.GetAllRoles();

lstRoles.DataSource=roles;

lstRoles.DataBind();

MembershipUserCollectionusers=Membership.GetAllUsers();

lstUsers.DataSource=users;

lstUsers.DataBind();

if(lstRoles.SelectedItem!

=null)

GetUsersInRole();

}

Click事件,将选中的用户添加到选中的角色中,执行的方法代码如下:

protectedvoidbtnToRole_Click(objectsender,EventArgse)

if(lstRoles.SelectedItem==null)

lblMsg.Text="

请选择角色!

;

return;

if(lstUsers.SelectedItem==null)

请选择用户!

string[]newUsers=newstring[lstUsers.GetSelectedIndices().Length];

for(inti=0;

i<

newUsers.Length;

i++)

newUsers[i]=lstUsers.Items[lstUsers.GetSelectedIndices()[i]].Value;

try

Roles.AddUsersToRole(newUsers,lstRoles.SelectedValue);

catch(Exceptionee)

lblMsg.Text=ee.Message;

当单击“从角色中删除”链接按钮,在删除gvUsers中所在行之前,触发RowDeleting事件,此时,需要从角色中删除相应的用户,执行的方法代码如下:

protectedvoidgvUsers_RowDeleting(objectsender,GridViewDeleteEventArgse)

GridViewRowgridViewRow=gvUsers.Rows[e.RowIndex];

LabellblName=(Label)gridViewRow.Cells[0].FindControl("

lblName"

stringusername=lblName.Text;

Roles.RemoveUserFromRole(username,lstRoles.SelectedValue);

从角色中删除用户时的错误:

+ee.GetType().ToString();

实验10

1.设计并实现用于显示商品分类和数量的用户控件

①建立Category.ascx

打开MyPetShop网站,在网站根文件夹下建立UserControl子文件夹,再在该子文件夹中添加Web用户控件Category.ascx

②设计Category.ascx

在设计视图中添加一个GridView控件,设置ID属性值为gvCategory、AutoGenerateColumns属性值为False。

其他用于定义格式的属性参考书本图的效果进行设置

gvCategory控件的Columns属性值设置如图,添加HyperLinkField和BoundField字段各一个。

HyperLinkField和BoundField字段的属性设置见书本

③编写Category.ascx.cs中的方法代码

MyPetShopDataContextdb=newMyPetShopDataContext();

varcategories=fromcindb.Category

joinpindb.Productonc.CategoryIdequals

p.CategoryIdintoproduct

selectnew

c.CategoryId,

c.Name,

ProductCount=product.Count()

};

gvCategory.DataSource=categories;

gvCategory.DataBind();

④测试Category.ascx

2.利用母版页重新设计MyPetShop网站中的各个页面

①设计母版页MasterPage.master

(1)在MyPetShop网站根文件夹中添加母版页MasterPage.master

(2)选择格式->

附加样式表命令,将网站根文件夹下的Style\TableDiv.css附加到母版页

(3)删除<

form>

元素中系统自动添加的<

层。

(4)将实验9中的ProShow.aspx页面的整个<

元素中,修改lnkbtnDefault控件的PostBackUrl属性值为Default.aspx

(5)在<

/header>

标记下面添加<

元素,之后再<

元素中添加一个用于布局的1行2列表格,分别在表格的两个单元格中添加一个ContentPlaceHolder控件并分别设置ID属性值为cphLeft和cphRight。

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

在所有方法外声明一个MyPetShopDataContext类实例,使得该方法能多次调用

MyPetShopDataContextdb=newMyPetShopDataContext();

protectedvoidPage_Load(objectsender,EventArgse)

{

Bind();

自定义的Bind方法,首先判断QueryString数据集合中的CategoryId值是否为空值,若非空,则查找该CategoryId值对应分类中的所有商品并绑定到gvProduct,否则将Product表中的所以商品绑定到gvProduct。

protectedvoidBind()

if(Request.QueryString["

ProductId"

]!

=null)

intproductId=int.Parse(Request.QueryString["

]);

varproducts=frompindb.Product

wherep.ProductId==productId

selectp;

gvProduct.DataSource=products;

gvProduct.DataBind();

CategoryId"

intcategoryId=int.Parse(Request.QueryString["

wherep.CategoryId==categoryId

当改变gvProduct的当前页时触发PageIndexChanging事件,设置新的页面索引值,并重新显示包含的商品,执行的方法代码如下:

protectedvoidgvProduct_PageIndexChanging(objectsender,GridViewPageEventArgse)

gvProduct.PageIndex=e.NewPageIndex;

System.Threading.Thread.Sleep(3000);

⑤预览效果

3.利用Web部件技术设计网站首页

①以MasterPage.master为母版,新建内容页Default.aspx

其中ContentPlaceHolderID属性值为cphLeft的<

asp:

Content>

元素中添加控件Category.ascx,再在ContentPlaceHolderID属性值为cphRight的<

元素中添加一个用于布局的2行3列表格。

在表格中添加控件。

板鞋Default.aspx.cs中的方法代码

当页面载入时的Page_Load事件:

if(!

foreach(WebPartDisplayModemodeinMyPartManager.DisplayModes)

if(mode.IsEnabled(MyPartManager))

ddlMode.Items.Add(mode.Name);

inti=1;

foreach(WebPartpartinMyPartManager.WebParts)

if(partisGenericWebPart)

part.Title=string.Format("

控件{0}"

i);

i++;

}

当选择下拉列表框中的不同模式值时,触发SelectedIndexChanged事件,此时,需要修改MyPartManager.DisplayMode的值来改变页面模式,代码如下

protectedvoidddlMode_SelectedIndexChanged(objectsender,EventArgse)

MyPartManager.DisplayMode=MyPartManager.DisplayModes[ddlMode.SelectedValue];

4.设计并应用主题

①设计Blue主题

在网站中添加一个Blue主题,向Blue主题对应的文件夹中分别添加外观文件Blue.skin、样式表文件Blue.css和子文件夹Images。

在Images中添加两个图片文件Loge.gif,Bar.jpg

在Blue.skin文件中输入代码如下:

Imagerunat="

server"

ImageUrl="

images/logo.jpg"

SkinID="

logo"

BorderStyle="

Double"

BorderWidth="

2px"

Font-Italic="

True"

ForeColor="

Blue"

在Blue.css文件中输入样式代码如下

body{

form{font-size:

12px;

table{width:

100%

.navigation{text-align:

center;

background-color:

#C8E3FF;

.status{background-color:

#C1FFFF;

.position{background-color:

#5B6DB5;

background-image:

url(Images/logo.jpg);

②应用Blue主题

(1)为避免冲突,分别复制MasterPage.master和Default.aspx到网站根文件夹下的ThemeMasterPage.master和ThemeDefault.aspx

(2)将ThemeMasterPage.master中的imgLogo控件的SkinID属性值设置为logo。

(3)将ThemeDefault.aspx中@Page指令的MasterPageFile和Theme属性值分别设置为~/ThemeMasterPage.master和Blue。

(4)查看效果

实验11

3.利用TreeView控件显示所有的商品分类及包含的商品

①设计用户控件PetTree.ascx

在MyPetShop网站的UserControl文件夹中添加一个用户控件PetTree.ascx,切换到设计视图,添加一个TreeView控件,设置其ID属性值为tvProduct、ExpandDepth属性值为0.

②编写PetTree.ascx.cs中的方法代码

载入页面时触发Page_Load事件,若为首次载入,则调用自定义方法BindTree()将所有的商品分类添加到TreeView控件的父节点中,执行的方法代码如下:

BindTree();

自定义方法BindTree()的代码如下:

protectedvoidBindTree()

selectc;

foreach(varcategoryincategories)

TreeNodetreeNode=newTreeNode();

treeNode.Text=category.Name;

treeNode.Value=category.CategoryId.ToString();

treeNode.NavigateUrl="

~/ProShow.aspx?

CategoryId="

+category.CategoryId.ToString();

tvProduct.Nodes.Add(treeNode);

BindTreeChild(treeNode,category.CategoryId);

自定义方法BindTreeChild()将制定分类下的所以商品添加到该分类节点下。

代码如下:

protectedvoidBindTreeChild(TreeNodetn,intcategoryId)

wherep.Category.CategoryId==categoryId

foreach(varproductinproducts)

treeNode.Text=product.Name;

treeNode.Value=product.ProductId.ToString();

ProductId="

+product.ProductId.ToString();

tn.ChildNodes.Add(treeNode);

③修改ProShow.aspx

先备份再打开ProShow.aspx,切换到设计视图,删除用户控件Category.ascx。

将用户控件PetTree.ascx拖到用户控件Category.ascx所处的位置。

最终的设计界面如图所示:

④修改ProShow.aspx.cs中的方法代码

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

当前位置:首页 > IT计算机 > 互联网

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

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