部分章节重点
ch1 ch2 ASP.NET基础
.NET运行环境
- .NET框架
- .NET框架类库
- CLR
参考:通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?
ASP.NET网页语法
ASP.NET 应用程序默认文件夹
- Bin
- APP_Code
- App_GlobalResources
- App_LocalResources
- App_WebReferences
- App_Browsers
- 主题
ASP.NET网页扩展名
-
.ascx
Web用户控件 -
htm
HTML页 -
xml
XML页 -
.master
母版页 -
.asmx
Web服务 -
.asax
全局应用程序类 -
.config
Web配置文件 -
.sitemap
网站地图 -
skin
外观文件 -
css
样式表
页面指令
<%@Page%>
-
<%@Import Namespace="Value"%>
一个指令只能导入一个命名空间 -
<%@OutputCache%>
设置用户控件的输出缓存策略 <%@Implements Interface="接口名称"%>
-
<%@Register%>
用于创建标记前缀和自定义控件之间的关联关系
注释
-
<%-- --%>
使用此注释不会输出到浏览器端 <!-- -->
服务器端文件包含
-
<!--#include file|virtual="filename" -->
将指定文件的内容插入 ASP.NET 文件中,包括网页(.aspx 文件)、用户控件文件(.ascx 文件)和 Global.asax 文件。-
file
相对文件目录的物理路径 -
virtual
相对网站虚拟目录的虚拟路径 (推荐使用)
-
ch4 ch5 ASP.NET控件
ASP.NET页面事件处理
- 页面事件
- PreInit事件
- Init事件
- Load事件
- 控件事件
- IsPostBack属性:如果是为响应客户端回发而加载该页,则为True;否则为False。
常用的服务器控件
- 文本控件
- Label
- TextBox
- Literal
- 按钮
- Button
- ImageButton
- 超链接
- HyperLink
- LinkButton 具有超链接外观的命令按钮
- 选择
- RadioButtion
- RadioButtionList
- CheckBox
- CheckBoxList
- ListBox
- DropDownList
- 图像
- Image
- 容器
- Panel
- PalceHoder
- 文件上传
- FileUpload
- 导航
- TreeView
- Menu
- SiteMapPath
-
数据绑定控件
- GridView
- DataList
- ListView
- Repeater
- DetailsView
- FormView
-
数据源控件
- SqlDataSource
- ObjectDataSource
- 数据验证
- RequiredFileValidator
- CompareValidator
- RangeValidatore
- RegularExpressionValidator
- CustomValidator
- ValidationSummary
状态管理
- 服务器
- ViewState 对于没有必要维持状态的页面和控件设置
EnableViewState=false
来禁用ViewState - HiddenField
- ViewState 对于没有必要维持状态的页面和控件设置
- 客户端
- Session
- Application
ADO.NET连接SqlServer
构建ConnectionString
- 通过程序内代码构建
//通过SqlServer身份验证 (安全连接)
string connStr1="Data Source=local;Initial Catalog=DataBaseName;User Id=xx;Password=xx";
//通过Windows身份验证 (可信连接)
string connStr2="Data Source=local;Initial Catalog=DataBaseName;IntegratedSecurity=SSPI";
// Data Source 可简写成 server
// Initial Catalog 可简写成 database
// User Id 可简写成 uid
// PassWord 可简写成 pwd
//使用SqlConnectionStringBuilder
SqlConnectionStringBuilder connStr3 = new SqlConnectionStringBuilder();
connStr3.DataSource =".";//"local"
stringBuilder.InitialCatalog = "DabaBaseName";
stringBuilder.IntegratedSecurity = true;
- 配置到config文件中
-
connectionStrings
节点(推荐)
-
<connectionStrings>
<add name="connStr" connectionString="Data Source=local;Initial Catalog=DataBaseName;User Id=xx;Password=xx" providerName="System.Data.SqlClient" />
</connectionStrings>
-
appSettings
节点
<appSettings>
<add key="connStr" value="Data Source=local;Initial Catalog=DataBaseName;User Id=xx;Password=xx"/>
</appSettings>
- 读取:
string connStr = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
内置对象
数据库
- Connection
- Command
- DataReade
- DataAdapter
- DataSet
- DataTable
网络
- Server
- Request
- Response
- Session
- Application
- Cookie
数据绑定控件
- GridView
- DataList
- ListView (具有GridView控件编辑数据的功能,同时又具有DataList控件灵活布局的功能)
AJAX
ASP.NET AJAX的优点
- 不会因为PostBack造成整页重新加载造成闪动
- 异步取回服务器端的数据
- 跨浏览器的兼容性支持
- 提供大量内建的客户端控件
- 可通过
web.config
配置启用AJAX相关设置
ASP.NET AJAX架构
AJAX是Asynchronous JavaScript and XML(中文译做:异步JavaScript和XML技术)的缩写,它是由JavaScript脚本语言、CSS样式表、XMLHttpRequest数据交换对象和DOM文档对象(或XMLDOM文档对象)等多种技术组成的。
服务器端架构
- ASP.NET AJAX 服务器端控件
- ASP.NET AJAX 服务器端扩展控件
- ASP.NET AJAX 服务器端远端Web Service
- ASP.NET AJAX 程序的客户端代理
服务器端控件在运行时会自动生成ASP.NET AJAX 客户端组件,并发送给客户端浏览器执行。
客户端架构
- 程序接口
- API函数
- 基础类库
- 封装的XMLHttpRequest对象
- ASP.NET AJAX XML引擎
- ASP.NET AJAX 客户端控件
客户端控件主要在浏览器上运行,主要提供管理界面元素、调用服务器端方法获取数据等功能。
ASP.NET AJAX 服务器端控件
负责管理Page页面中国所有的AJAX服务器控件。
ScriptManager 控件
管理Page页面中所有的AJAX服务器控件,是AJAX的核心。
常用属性:
EnablePageMethods
EnablePartialRendering
EnableScriptComponents
Script
Service
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="~/Scripts/validateName.js" />
</Scripts>
<Services>
<asp:ServiceReference Path="~/RandomService.asmx" />
</Services>
</asp:ScriptManager>
ScriptReference
类常用属性
Assembly
Path
Name
NotifyScriptLoaded
UpdatePanel 控件
将ASP.NE服务器控件拖放到UpdatePanel控件中,使原本不具备AJAX能力的控件具有AJAX异步功能。
常用属性:
-
ContentTemplate
(通过<ContentTemplate>
元素声明) -
Triggers
(通过<Triggers>
元素声明)-
AsyncPostBackTrigger
用于引发局部更新 -
PostBackTrigger
用于引发整页更新
-
-
UpdateMode
(用于UpdatePanel嵌套)-
Always
每次Postback后Update会被连带更新 Conditional
-
-
RenderMode
若RenderMode
的属性为Block
,则以<DIV>
标签来定义程序段;若为Inline
,则以<Span>
标签来定义程序段。(默认为Block
)
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
rand num:
<br />
<div style="text-align: center; width: 123px; height: 60px; line-height: 60px; background-color: rebeccapurple">
<asp:Label ID="Label1" runat="server" Font-Bold="true" Font-Size="18px" />
</div>
<asp:Button ID="Button1" runat="server" Text="rand num" OnClick="Button1_Click" />
</ContentTemplate>
<!-- 控制UpdatePanel外部的控件局部更新 -->
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button2" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
<asp:Button ID="Button2" runat="server" Text="rand num" OnClick="Button1_Click" />
Timer 控件
注意:使用Timer控件可能会加大Web应用程序的负载。在引入自动回发特性前并在确实需要的时候才推荐使用Timer控件,同时尽可能设置更长的间隔时间。
-
Interval
属性 -
Enable
属性 -
Tick
事件
<!--AJAXdemo.aspx-->
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Timer ID="Timer1" runat="server" OnTick="Timer1_Tick" Interval="1000">
</asp:Timer>
<asp:Label ID="TimeNow" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
//AJAXdemo.aspx.cs (一部分)
protected void Timer1_Tick(object sender, EventArgs e)
{
TimeNow.Text = DateTime.Now.ToString();
}
- AJAX Control Toolkit 扩展工具包
-
PasswordStrength
控件 -
TextBoxWatermark
控件 -
SlideShow
控件
-