wrox asp.net 2 beta preview study

类别:Asp 点击:0 评论:0 推荐:

chapter 3
    在新建solution的时候,可以选择建立的位置,默认是一个websites目录下,可以通过操作选择在localhost的iis,ftp或者remote的web

site上。
    在新增一个item的时候,可以选择是否将presentation code和logic code放在一个文件中。
    多了MasterPage和PreviousPage两种page,后面讲到
    增加了不少的controls,例如Navigation用的,以及为了Personlize的(webpart,webzone,webpartmanager)
    多了一些事件,现在page的执行顺序为:PreInit, Init, InitComplete, PreLoad, Load, LoadComplete, PreRender,

PreRenderComplete
    PreviousPage用于Cross-Page Posting,而Cross-page Posting,就是post动作,并不是发送回本页,而是另外的一个url页面,例如下面

的代码
        <asp:Button ID="Button1" Runat="server" Text="Submit page to itself"
         OnClick="Button1_Click" />
        <asp:Button ID="Button2" Runat="server" Text="Submit page to Page2.aspx"
         PostBackUrl="Page2.aspx" />
注意到了么,Button2没有OnClick,而是用PostBackUrl来定义了Post动作发送到的页面,同时,在Page2.aspx中定义PreviousPage,以便于

Page2的behind code进行引用从而调用Post动作源Page1.aspx的controls。访问Page1.aspx上control有两种方法,一个是Page1.aspx公布

property,另一个是PreviousPage.FindControl(ControlID),其中ControlID是一个string。忘记说一点,PreviousPage的定义是利用

Directive进行定义的,例如在Page2.aspx中<%@ PreviousPageType VirtualPath="~/Default3.aspx" %>。同时,利用新增加的属性

IsCrossPagePostBack,就可以对Cross-Post进行拦截处理。
    关于文件夹。在asp.net 2.0中,通过使用预定义好的文件夹,IDE?会为程序员自动编译好程序。MMD,不明白,也不知道翻译的对不对。
    \code文件夹,存储类,.wsdl文件以及类型化dataset,如果把一个.cs文件放入code文件夹中,vs自动编译它,放入一个.wsdl文件,vs自

动创建web service的代理类,放入一个.xsd文件,vs自动创建类型化dataset,只要这些自动创建完成,所有同一个solution的page就可以立

即调用这些item。
    实现code文件夹的步骤:创建一个文件夹,名称叫做code,vs会特殊处理它,至少图标都不一样。如果是多开发语言的情况,可以分别建

立子文件夹,并且在web.config文件中增加说明,例子如下:
    <system.web>
        <compilation>
            <codeSubDirectories>
                <add directoryName="VB"></add>
                <add directoryName="CS"></add>
            </codeSubDirectories>
        </compilation>
    </system.web>

    \Themes文件夹,存放.css文件以及Server Control用到的image

    \Resources文件夹,在vs 2003中,如果要做全球化和本地化,需要resgen.exe工具,现在vs2005中,不用了,直接把resx文件放在

Resources文件夹中,就可以了

    Compilation,编译,在page被第一次浏览的时候,request被发送给asp.net分析器,asp.net分析器创建类文件,然后class文件被编译进

DLL,写到Web Server的硬盘上,然后Response这个class文件;在第二次请求这个page的时候,request只是简单的实例化一下已经创建的dll

,并把它返回给request就ok了。
    但也正是这种机制,使得如果有了一点点的改动,都需要重新编译程序,很烦的说,在vs2005中,有了改进,这种编译被称为in-place

precompilation,具体的做法就是在IE中,把page的名字替换为precompile.axd,例如http://localhost:8080/mywebsite/aaa.aspx在IE的地

址栏更该为http://localhost:8080/mywebsite/precompile.axd

    数据操作:在vs2003中,使用的是很复杂的DataAdapter、DataSet,最后进行DataSource设置,很麻烦,现在vs2005简化了这些,给了几

个DataSource,例如连接SQL的SQLDataSource,连接Access的AccessDataSource等等。
    GridView,显示数据,有DataSourceID进行DataSource连接,AllowPaging允许分页,AllowSorting允许排序,

AutoGenerateEditingButton允许编辑,AutoGenerateDeleteButton允许删除,AutoGenerateSelectButton允许高亮选择条目

本文地址:http://com.8s8s.com/it/it7392.htm