Dot Net FrameWork 4.0 学习笔记(1)
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插件很像,能够保持选中状态在分页时
五、控件的其余一些加强点

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

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

<!-- 3 RepeatLayout
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,新的条件表达式,自定义缓存逻辑,数据源绑定数据的再检索
欢迎关注本站公众号,获取更多信息