编程珠玑Dotnet1Word文档下载推荐.docx
- 文档编号:5748523
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:35
- 大小:895.76KB
编程珠玑Dotnet1Word文档下载推荐.docx
《编程珠玑Dotnet1Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《编程珠玑Dotnet1Word文档下载推荐.docx(35页珍藏版)》请在冰点文库上搜索。
1.1.3实现ASP.NET2.0向导
ASP.NET2.0向导实现为控件。
要使用它们,只需把一个新的向导控件添加到可视化设计器中,设置其属性即可。
本节描述如何通过一个范例菜单选择应用程序来实现ASP.NET2.0向导。
在这个过程中要进行许多选择,向导将根据输入参数管理导航。
下面的步骤说明了如何创建范例应用程序:
(1)创建一个新的Web项目。
为此,选择File|New|WebSite,再选择ASP.NETWebSite模板,把目录位置改为WizardDemo,如图1-1所示。
图1-1
(2)单击OK按钮,VisualStudio2005就会创建一个新项目,如图1-2所示。
(3)如果当前在HTML视图上,如图1-2所示,就单击编辑器左下角的Design链接,进入设计视图。
图1-2
(4)在设计视图中,找到工具箱,它位于IDE的左边。
把鼠标指针停放在Toolbox标签上,就可以打开它。
单击工具箱的Standard区域,选择Wizard控件。
把一个Wizard控件拖放到窗体上,如图1-3所示。
图1-3
(5)选择View|PropertiesWindow,显示Properties窗口。
在这个窗口中,把HeaderText属性设置为MenuSelector。
(6)扩展Wizard控件,使其大小大约为400×
200。
(7)Wizard控件在第一次添加到Web窗体上时,显示了两个链接,分别称为Step1和Step2。
选择Wizard控件中的Step1。
(8)在Wizard控件中选择编辑区域,输入“WhatisyourEatingPreference?
”。
(9)从工具箱中把一个RadioButtonList控件拖放到Wizard控件的编辑区域,在ActionList上选择EditItems。
在ListItemCollection编辑器上给两个新项的Text属性添加MeatEater和Vegetarian项。
图1-4显示了第5~9步的结果。
图1-4
(10)在Wizard控件中选择Step2。
(11)在编辑区域输入“PleaseSelectMainCourse:
(12)把一个RadioButtonList控件从工具箱拖放到Wizard控件的编辑区域。
选择ActionList中的EditItems,在ListItemCollection编辑器中为三个新项的Text属性添加Chicken、Fish和Steak项。
图1-5显示了第10~12步的结果。
图1-5
(13)在WizardTasks列表中单击Add/RemoveWizardSteps,给Wizard控件添加Step3。
(14)选择刚才添加到Wizard控件中的新链接Step3。
(15)在编辑区域中输入“PleaseSelectMainCourse:
(16)把一个RadioButtonList控件从工具箱拖放到Wizard控件的编辑区域。
选择ActionList中的EditItems,在ListItemCollection编辑器中为三个新项的Text属性添加Bread、Salad和VeggieTray项。
图1-6显示了第13~16步的结果。
图1-6
(17)在WizardTasks列表中单击Add/RemoveWizardSteps,给Wizard控件添加Step4。
(18)选择刚才添加到Wizard控件中的新链接Step4。
(19)在编辑区域中输入“PleaseSelectBeverage:
(20)把一个RadioButtonList控件从工具箱拖放到Wizard控件的编辑区域。
选择ActionList中的EditItems,在ListItemCollection编辑器中为三个新项的Text属性添加Coffee、Water和Wine项。
图1-7显示了第17~20步的结果。
图1-7
这将为包含多个步骤的向导创建HTML。
程序清单1-1列出了这个页面的HTML,其中包含了本节后面进行的修改。
程序清单1-1中的HTML是我们在执行第1~20步时,由VisualStudio2005自动生成的。
在VisualStudio2005编辑器的底部选择HTML选项卡,从设计视图切换到HTML视图。
此时,将看到程序清单1-1中的代码。
程序清单1-1包含多个步骤的ASP.NETv2.0Wizard控件
<
%@PageLanguage="
C#"
AutoEventWireup="
true"
CodeFile="
Default.aspx.cs"
Inherits="
_Default"
%>
!
DOCTYPEhtmlPUBLIC"
-//W3C//DTDXHTML1.0Transitional//EN"
"
http:
//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
htmlxmlns="
//www.w3.org/1999/xhtml"
>
headrunat="
server"
<
title>
WizardDemo<
/title>
/head>
body>
formid="
form1"
runat="
div>
asp:
WizardID="
Wizard1"
ActiveStepIndex="
0"
HeaderText="
MenuSelector"
Height="
200px"
Width="
400px"
OnFinishButtonClick="
Wizard1_FinishButtonClick"
OnNextButtonClick="
Wizard1_NextButtonClick"
WizardSteps>
WizardSteprunat="
Title="
Step1"
Whatisyoureatingpreference?
br/>
RadioButtonListID="
RadioButtonList1"
runat="
ListItem>
MeatEater<
/asp:
Vegetarian<
RadioButtonList>
WizardStep>
Step2"
Pleaseselectmaincourse:
RadioButtonList2"
Chicken<
Fish<
Steak<
Step3"
RadioButtonList3"
Bread<
Salad<
VeggieTray<
Step4"
Pleaseselectbeverage:
RadioButtonList4"
Coffee<
Water<
Wine<
/WizardSteps>
Wizard>
/div>
/form>
/body>
/html>
从程序清单1-1中的步骤和图1-8可以看出,用户要么是一位荤食者,要么是一位素食者。
他们应只看到对应其选项的菜单项。
图1-8
为了指定不同的菜单,Wizard控件必须根据用户在Step1中做出的选择,导航到不同的步骤。
ASP.NET的Wizard控件支持事件,我们将使用事件根据用户的饮食喜好来确保显示相应的步骤。
程序清单1-2说明,在用户单击Next按钮时,如何正确导航。
单击Properties窗口上的闪电图标,并双击NextButtonClick事件,就会生成事件处理程序框架,该处理程序的默认名称是Wizard1_NextButtonClick。
在Wizard1_NextButtonClick事件处理程序中输入算法,如程序清单1-2所示。
程序清单1-2修改向导的顺序进程
protectedvoidWizard1_NextButtonClick(
objectsender,WizardNavigationEventArgse)
{
if(Wizard1.ActiveStepIndex==0)
if(RadioButtonList1.SelectedValue=="
Vegetarian"
)
Wizard1.ActiveStepIndex=2;
}
if(Wizard1.ActiveStepIndex==1)
Wizard1.ActiveStepIndex=3;
捕获了NextButtonClick事件后,如程序清单1-2所示,就可以控制Wizard控件的导航顺序。
这个事件在单击Next按钮时,在当前页面的环境下调用。
因此,首先检查ActiveStepIndex,确定当前页面,该页面用一个基于0的整数表示。
所有的步骤控件都可以在回送过程中访问,所以很容易获得它们的值。
在这里,如果用户的饮食喜好是Vegetarian,代码就把ActiveStepIndex设置为Step3页面,即索引2。
如果用户的饮食喜好是MeatEater,Wizard控件一般将导航到索引为1的Step2上。
此时,单击Next按钮,会使用户进入索引为3的Step4上,选择一种饮料。
导航到Step3上的素食者在单击Next按钮后,一般会进入Step4。
Wizard控件到达末尾后,Next按钮将被Finish按钮替代。
此时可以捕获Finish按钮的事件,该事件在单击Finish按钮时执行,如程序清单1-3所示。
程序清单1-3处理Finish按钮事件
protectedvoidWizard1_FinishButtonClick(
Response.Write(
"
Yourmealwillbe"
+
RadioButtonList3.SelectedValue+
and"
RadioButtonList4.SelectedValue);
else
RadioButtonList2.SelectedValue+
在程序清单1-3中,我们主要感兴趣的是,用户的饮食喜好是MeatEater,还是Vegetarian,以便从相应的控件中提取值。
代码通过Response.Write,根据用户在运行向导时是选择MeatEater还是Vegetarian,输出选中的菜单项。
在添加步骤、处理事件和修改属性的过程中,可以看出ASP.NETv2.0的Wizard控件有多么复杂。
这是一个非常有用的窍门程序,目前已转化为一个完整的产品特性。
1.2MasterPage:
以前和现在
MasterPage可以为网站的多个页面开发出具有统一外观和操作方式的可视化模板。
在ASP.NETv1.1中,开发人员需要使用几种不同的技术完成类似的任务,包括继承自一个公共的页面基类的用户控件和一组使用模板的MasterPage。
本节将介绍如何在ASP.NETv1.1中实现MasterPage模板窍门程序的资源,接着描述如何把它们实现为ASP.NETv2.0中的一个主要特性。
1.2.1ASP.NETv1.1中的MasterPage模板
在ASP.NETv1.1中,与ASP.NETv2.0的MasterPage最接近的技术是模板管理技术。
PaulWilson在上撰写了几篇有关页面模板的文章。
2003年10月,他给ASP联盟发表了“PageTemplates:
Introduction”一文(PaulWilson/Articles/?
id=14),描述了用户控件和页面继承技术。
而比较有趣的是他给ASP联盟发表的文章“MasterPages:
Introduction”(Articles/?
id=13)。
对于许多开发人员来说,这是ASP.NETv2.0中的MasterPage的第一次亮相。
PaulWilson的文章介绍了如何用ASP.NETv1.1实现相同的功能。
在ASP.NETv1.1中实现模板化有其他可靠的方式。
在PhilippSumi的CodeProject文章“AComponent-BasedTemplateEngineforASP.NET”(controls.asp)中,展示了在ASP.NETv1.x中使用MasterPage模板的另一种方法。
还有其他例子,但PaulWilson和PhilippSumi的文章是可以在ASP.NETv1.1中使用的可靠参考。
1.2.2ASP.NETv2.0中的MasterPage
在ASP.NETv2.0中,MasterPage从一个窍门程序成长为一个重要特性。
它们内置于ASP.NET中,拥有新的页面指令、占位符和控件,可以为应用程序或网站创建出统一的外观和操作方式。
另外,它们还在VisualStudio2005中获得了良好的支持。
1.2.3实现MasterPage
在ASP.NETv2.0中,MasterPage实现为一个Web页面,其中包含内容页面可以使用的默认外观和操作方式。
多个内容页面只需提供合并到MasterPage中的内容标记,即可使用这个MasterPage的统一外观和操作方式。
本节的示例将使用VS2005创建一个MasterPage和简单的内容页面。
首先,创建一个新的Web项目,删除自动创建的Default.aspx页面。
后面在创建使用MasterPage的内容页面时,将再次创建Default.aspx。
(1)要创建MasterPage,在SolutionExplorer中右击Web项目,选择AddNewItem,再选择MasterPage,给它指定名称Company.master,然后单击OK按钮。
这将创建一个新的MasterPage。
(2)如果MasterPage在HTML视图中,就单击编辑器左下角的Design按钮,把它切换到设计视图。
选择Layout|InsertTable,给Company.master添加一个新表。
(3)在InsertTable对话框中,选择Template,再从下拉列表中选择“Header,footerandside”,如图1-9所示。
(4)表添加到页面上后,选择最上面一行的单元格,输入“MyCompanyHeader”,选择第二行的第一个单元格,输入“MenuGoesHere”,再选择第三行(最后一行)的单元格,输入“Copyright(C)2006MyCompany,AllRightsReserved”。
(5)第一次创建MasterPage时,它会自动添加一个ContentPlaceHolder控件。
Company.master也是如此。
把ContentPlaceHolder控件拖放到刚才插入Company.master的表中第二行的第二个单元格中。
结果如图1-10所示。
图1-9
图1-10
创建和修改Company.master后,就可以单击编辑器左下角的HTML按钮,查看自动生成的HTML代码了。
程序清单1-4列出了为Company.master进行上述修改后的HTML。
程序清单1-4格式化定制页面元素的MasterPage:
Company.master
%@MasterLanguage="
CodeFile="
Company.master.cs"
Inherits="
Company"
MyCompany<
tableborder="
cellpadding="
cellspacing="
style="
width:
100%;
height:
100%"
tr>
tdcolspan="
2"
height:
200px"
h1>
MyCompanyHeader<
/h1>
/td>
/tr>
tdstyle="
MenuGoesHere<
td>
contentplaceholderid="
ContentPlaceHolder1"
contentplaceholder>
Copyright(C)2006MyCompany,AllRightsReserved
/table>
在程序清单1-4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编程 珠玑 Dotnet1