4.0出来很长时间,由于各种原因各种借口也没有去认真的做过了解,这些由于工作关系,硬着头皮还是把4.0的知识点梳理了一遍,记录如下 
 
 
       
    在这风起云涌的WEB2.0+的后时期,确实微软也在积极引导广大的开发者走向WEB标准化,以下的小小变动无一不体现出设计者的妙思奇想
  

 
       
    .Net FrameWork分为CLR与Class Library这个没什么好说的,4.0上依旧是这样没有任何变化,不过居言在5.0会开启另外的运行时环境与C++ 11做交换,这个还是蛮期待的.. 
  

 
        
 
      1,简洁的 web.config 文件  
     2,控件的新属性 ViewStateMode - 控件的视图状态模式  
     3,控件的新属性 ClientIDMode - 生成客户端 ID 的方式  
     4,列表控件的新属性 EnablePersistedSelection - 保存选中项的方式  
     5,控件的其他一些增强点  
         RenderOuterTable - 指定控件在客户端呈现的时候,是否在外层加 table 标签  
         Menu 控件,在  asp .net 4.0 中将会以 ul li 的方式呈现在客户端  
         RepeatLayout - 布局模式,控件在客户端的 HTML 呈现方式  
         Wizard 和 CreateUserWizard 新增了 LayoutTemplate 模板  
         原来使用 ListView 必须要有 LayoutTemplate ,在 asp.net 4.0 中可以不再用它了  

 
   
  

 
        示例:
    1. 简洁的 web.config,配置信息被移到了 machine.config
    <configuration>

         <system.web>
              <compilation debug="true" targetFramework="4.0" />
        </system.web>

    </configuration>



    2.ViewStateMode 属性的用法 , 直接上图

    Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝


  3.ClientIDMode 属性的用法
  <!--

        ClientIDMode - 生成客户端 ID 的方式
            ClientIDMode.AutoID - 生成方式和以前一样,为保证唯一,会把其以上各层级的控件ID拿过来拼成一个页面中的唯一ID
            ClientIDMode.Inherit - 继承父控件的客户端ID生成方式
            ClientIDMode.Static - 静态方式。在服务端设置的ID是什么,客户端所呈现的ID就是什么
            ClientIDMode.Predictable - 生成ID的方式为:[Prefix]_[ID]_[Suffix]
        注意:
            在某控件层级中如果没有设置 ClientIDMode,则其默认值为 AutoID
            如果在控件层级中的父级控件设置了 ClientIDMode,则其子控件的默认值为 Inherit
    -->
   <!-- Predictable 模式中自动分配 Suffix 的方式 -->
    <div id="repeaterContainer">
        <asp:Repeater ID="repeater" runat="server" ClientIDMode="Static">
            <ItemTemplate>
                <div>
                    <asp:Label ID="productPrice" ClientIDMode="Predictable" runat="server">
                    <%# string.Format(System.Globalization.CultureInfo.CurrentUICulture, "{0:c}", Eval("ProductPrice"))%>
                    </asp:Label>
                </div>
            </ItemTemplate>
        </asp:Repeater>
    </div>


    <!-- Predictable 模式中分配指定 Suffix 的方式(ClientIDRowSuffix 指定 Suffix 的数据来源) -->
    <asp:ListView ID="listView" runat="server" ClientIDMode="Static" ClientIDRowSuffix="ProductId">
        <ItemTemplate>
            <div>
                <asp:Label ID="productPrice" ClientIDMode="Predictable" runat="server">
                    <%# string.Format(System.Globalization.CultureInfo.CurrentUICulture, "{0:c}", Eval("ProductPrice"))%>
                </asp:Label>
            </div>
        </ItemTemplate>
        <LayoutTemplate>
            <div id="listViewContainer">
                <div id="itemPlaceholder" runat="server" />
            </div>
        </LayoutTemplate>
    </asp:ListView>



    Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝
 

    ps:注意几种方式的ID,有了这个好东西在生成的客户端ID上我们终于有了自主权 Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝



    4.EnablePersistedSelection 属性的用法

        <!--
        EnablePersistedSelection - 保存选中项的方式
            true - 根据 DataKeyNames 指定的字段做为关键字保存选中项(分页操作不会改变选中项)
            false - 根据行在当前页的表中的索引做为关键字保存选中项(分页后,选中项会发生改变。比如,在第一页选中了第一行,那么分页到第二页的时候选此页的第一行就会被当成选中项,也就是选中项发生了改变)
    -->
    <asp:GridView ID="gridView" runat="server" AllowPaging="True" DataSourceID="ObjectDataSource1"
        CellPadding="4" ForeColor="#333333" GridLines="None" EnablePersistedSelection="true"
        DataKeyNames="productId">


    ps:这个属性和我们之前用过的Flexigrid插件很像,可以保持选中状态在分页时



   5、控件的其他一些增强点



    Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝


    <!--   1


        RenderOuterTable - 指定控件在客户端呈现的时候,是否在外层加 table 标签
            FormView,Login,PasswordRecovery,ChangePassword 控件均有此属性 
    -->

    Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝





    <!--   2
        Menu 控件,在 asp.net 4.0 中将会以 ul li 的方式呈现在客户端
    -->
    Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝

    <!--  3  RepeatLayout 

        RepeatLayout - 布局模式,控件在客户端的 HTML 呈现方式
            RepeatLayout.Flow - 流式布局,一行一个选项
            RepeatLayout.OrderedList - ol li 布局
            RepeatLayout.UnorderedList - ul li 布局
            RepeatLayout.Table - Table 布局
            CheckBoxList,RadioButton 控件均有此属性
    -->
    Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝





    <!--  4  向导控件的 LayoutTemplate新模板
        Wizard 和 CreateUserWizard 新增了 LayoutTemplate 模板 ,如下
            headerPlaceholder - runtime时,其内容会被 HeaderTemplate 中的内容替换掉
            sideBarPlaceholder - runtime时,其内容会被 SideBarTemplate 中的内容替换掉
            wizardStepPlaceholder - runtime时,其内容会被 WizardStepTemplate 中的内容替换掉
            navigationPlaceholder - runtime时,其内容会被导航模板中的内容替换掉
    -->

    Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝

    Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝



    <!--  5   ListView 

        原来使用 ListView 必须要有 LayoutTemplate ,在 asp.net 4.0 中可以不再用它了
    -->


    关于控件或表象的一些东西就大都在这里了,这也是4.0中的一些UI上的变化吧,
 
    下一节,webform做URL,新的条件表达式,自定义缓存逻辑,数据源绑定数据的再检索  Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝