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) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝 Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝](http://img.bimg.126.net/photo/soaNcO40QDoMTJy92n0pvg==/4850939748648234514.jpg)
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) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝 Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝](http://img.bimg.126.net/photo/XRRf0v6tylPr0aqU8An7VQ==/4850939748648234515.jpg)
ps:注意几种方式的ID,有了这个好东西在生成的客户端ID上我们终于有了自主权![Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝 Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝](http://img.bimg.126.net/photo/O6Ol0cGEHGO15gDWgZwcDQ==/2890185060865766724.gif)
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) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝 Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝](http://img.bimg.126.net/photo/rqywQQ1lggY2qHBj8tacLQ==/4850939748648234516.jpg)
<!-- 1
RenderOuterTable - 指定控件在客户端呈现的时候,是否在外层加 table 标签
FormView,Login,PasswordRecovery,ChangePassword 控件均有此属性
-->
![Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝 Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝](http://img.bimg.126.net/photo/FbgI8DYhxccMrutWZW3G7Q==/4850939748648234517.jpg)
<!-- 2
Menu 控件,在 asp.net 4.0 中将会以 ul li 的方式呈现在客户端
-->
![Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝 Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝](http://img.bimg.126.net/photo/2DA1eyhCGmx_Kyeey95tWw==/4850939748648234518.jpg)
<!-- 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) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝 Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝](http://img.bimg.126.net/photo/AJgyYJ-496MX0KrjQUG5GA==/4850939748648234519.jpg)
<!-- 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) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝](http://img.bimg.126.net/photo/Y0CAl2dT_0dGYSXbH4qJEA==/4850939748648234520.jpg)
![Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝 Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝](http://img.bimg.126.net/photo/M1GcAJ8LHY25dqkbor4uOw==/4850939748648234521.jpg)
<!-- 5 ListView
原来使用 ListView 必须要有 LayoutTemplate ,在 asp.net 4.0 中可以不再用它了
-->
关于控件或表象的一些东西就大都在这里了,这也是4.0中的一些UI上的变化吧,
下一节,webform做URL,新的条件表达式,自定义缓存逻辑,数据源绑定数据的再检索
在这风起云涌的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) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝 Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝](http://img.bimg.126.net/photo/soaNcO40QDoMTJy92n0pvg==/4850939748648234514.jpg)
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) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝 Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝](http://img.bimg.126.net/photo/XRRf0v6tylPr0aqU8An7VQ==/4850939748648234515.jpg)
ps:注意几种方式的ID,有了这个好东西在生成的客户端ID上我们终于有了自主权
![Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝 Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝](http://img.bimg.126.net/photo/O6Ol0cGEHGO15gDWgZwcDQ==/2890185060865766724.gif)
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) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝 Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝](http://img.bimg.126.net/photo/rqywQQ1lggY2qHBj8tacLQ==/4850939748648234516.jpg)
<!-- 1
RenderOuterTable - 指定控件在客户端呈现的时候,是否在外层加 table 标签
FormView,Login,PasswordRecovery,ChangePassword 控件均有此属性
-->
![Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝 Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝](http://img.bimg.126.net/photo/FbgI8DYhxccMrutWZW3G7Q==/4850939748648234517.jpg)
<!-- 2
Menu 控件,在 asp.net 4.0 中将会以 ul li 的方式呈现在客户端
-->
![Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝 Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝](http://img.bimg.126.net/photo/2DA1eyhCGmx_Kyeey95tWw==/4850939748648234518.jpg)
<!-- 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) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝 Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝](http://img.bimg.126.net/photo/AJgyYJ-496MX0KrjQUG5GA==/4850939748648234519.jpg)
<!-- 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) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝](http://img.bimg.126.net/photo/Y0CAl2dT_0dGYSXbH4qJEA==/4850939748648234520.jpg)
![Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝 Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝](http://img.bimg.126.net/photo/M1GcAJ8LHY25dqkbor4uOw==/4850939748648234521.jpg)
<!-- 5 ListView
原来使用 ListView 必须要有 LayoutTemplate ,在 asp.net 4.0 中可以不再用它了
-->
关于控件或表象的一些东西就大都在这里了,这也是4.0中的一些UI上的变化吧,
下一节,webform做URL,新的条件表达式,自定义缓存逻辑,数据源绑定数据的再检索
![Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝 Dot Net FrameWork 4.0 学习笔记(1) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝](http://img.bimg.126.net/photo/jxcEjMY5r0PDOGkbhWRI5g==/5369698130710040524.gif)
转载于:https://blog.51cto.com/apprentice/1360553