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 属性的用法 , 直接上图

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>

ps:注意几种方式的ID,有了这个好东西在生成的客户端ID上我们终于有了自主权 
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、控件的其他一些增强点

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

<!-- 2
Menu 控件,在 asp.net 4.0 中将会以 ul li 的方式呈现在客户端
-->

<!-- 3RepeatLayout
RepeatLayout - 布局模式,控件在客户端的 HTML 呈现方式
RepeatLayout.Flow - 流式布局,一行一个选项
RepeatLayout.OrderedList - ol li 布局
RepeatLayout.UnorderedList - ul li 布局
RepeatLayout.Table - Table 布局
CheckBoxList,RadioButton 控件均有此属性
-->

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


<!-- 5
ListView
原来使用 ListView 必须要有 LayoutTemplate ,在 asp.net 4.0 中可以不再用它了
-->
关于控件或表象的一些东西就大都在这里了,这也是4.0中的一些UI上的变化吧,
下一节,webform做URL,新的条件表达式,自定义缓存逻辑,数据源绑定数据的再检索 
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 中可以不再用它了

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



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

Menu 控件,在 asp.net 4.0 中将会以 ul li 的方式呈现在客户端
-->

<!-- 3




本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1360553,如需转载请自行联系原作者