2023年3月

1、
web应用程序的特征

多用户特征:保证每一个用户都有一致的用户体验,对并发的处理。这个可以联想一下我们在使用12306进行购票的场景。

无状态特征:也就是说服务器端不会保存客户端的信息。

服务器上运行,浏览器上查看:需要尽可能地减少浏览器与服务器之间的交互,提高响应速度。这涉及到一个网络带宽和接口的问题,交互多了,网络带宽占用增多,降低了响应速度。

2、
ASP.NET中的文件类型

3、
ASP.NET的工作过程

用户从浏览器中请求网页

当IIS接受到请求后,会将该文件名判断并将该请求传递给合适的ASP.NET应用程序。

IIS是互联网信息服务,是由
微软公司
提供的基于运行Microsoft
Windows
的互联网基本服务。是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络上发布信息成为一种很简单的事情。

ASP.NET接收对应用程序的第一个请求

此时应用程序域管理器会产生一个应用程序域;应用程序域为全局变量提供应用程序隔离,并允许单独卸载每个应用程序。在应用程序中创建数组环境,它提供对有关程序的信息访问。

为每个请求创建ASP.NET核心程序:
比如Httprequest.

将HttpApplication对象分配给请求:

由HttpApplication处理请求。

4、
ASP.NET网页组成

可视元素:比如标记、服务器控件、静态文本(一般用来做不经常变动的文本表示)

页面的编程逻辑:事件处理程序和其他代码。

5、
C#单文件页模型的展示原理

由图中我们可以获得如下的信息:

在生成页之后,生成的类将编译成程序集,并将该程序集加载到应用程序域,然后对该页类进行实例化并执行该页类以将输出呈现到浏览器。

一、
母版页

1、母版页是指为应用程序中的页创建一致的布局,为应用程序中的所有页、或一组页定义所需的外观和标准行为,然后创建要显示内容的各个页内容,并将内容页与母版页相关联。

当用户请求内容页的时候,内容页和母版页合并,将内容页的内容与母版页的布局相组合,然后再展示出来。(从这里我们可以看出,母版页类似于一个框架,内容页就是盖在框架外的饰品,注意,如果      我们只有母版页,没有内容页,这个页面是没有用处的)

从上,我们可以大致得出母版页具有:易于站点修改和维护、减轻工作人员工作压力;提高内容的整合能力;有利于实现页面布局;提供一种便利的对象模型。

2、
母版页的创建(注:此处本人使用的是vs2017编辑器)

选择母版页:

上面我们就直接创建好了一个母版页,然后我们查看它的控件,会发现,它会多有一个ContentPlaceHolder控件,在这里面,我们一般用来放内容页面所需的js、css代码。

3、内容页的创建:(注意右下角选择母版页的选择框)

这样我们这个内容页也就创建好了,从创建完的效果我们可以看出,该aspx文件和往常的文件有所不同:

1、内容页中多了一个MasterPageFile属性,从这个属性的值中我们可以看出它实际上是指出了母版页的位置。除此之外,我们仔细观察.master(母版页)中的代码和.aspx(内容页)中的代码,我们会发现内容页中包含有两个ContentPlaceHolder控件,一个id是head,一个id是ContentPlaceHolder1;其中head是用来写标题一类的CSS、Javascript代码;另外的就是其余部分的了。内容页和母版页之间通过这两个id进行对应绑定。注意:ContentPlaceHolder控件是不能够额外添加的。

2、从上图中我们可以看出该内容页中仅有一个<asp:Conten>控件,它和母版页中的ContenPlaceHolder相对应,两个属性相绑定。在ContenPlaceHolderID中写HTML、JS代码。

4、页面运行机制

(1)用户访问内容页;

(2)获取内容页后,读取@Page指令,若指令引用到一个母版页,则也读取该母版页,若为第一次请求,则两个页都要进行编译;

(3)母版页合并到内容页的控件树中;

(4)各个Content控件的内容合并到母版页中相对应的ContentPlaceHolder控件中;

(5)呈现结果页;

母版页和内容页处理顺序

第01步、内容页的 Page_PreInit
第02步、母版页的 Page_Init
第03步、内容页的 Page_Init
第04步、内容页的 Page_InitComplete
第05步、内容页的 Page_PreLoad
第06步、内容页的 Page_Load
第07步、母版页的 Page_Load
第08步、母版页或内容页的 按钮点击等回发事件(Master或Content的Button事件不会同时触发)
第09步、内容页的 Page_LoadComplete
第10步、内容页的 Page_PreRender
第11步、母版页的 Page_PreRender
第12步、内容页的
Page_PreRenderComplete
第13步、内容页的
Page_SaveStateComplete
第14步、母版页的 Page_Unload
第15步、内容页的 Page_Unload

5、在内容页中访问母版页

弱类型引用:使用FindControl方法传递一个控件的ID

输出结果

强类型引用:访问模板页中公开属性和方法

以上是主要的代码,最后输出结果和上面的一样。

我们需要关注的点在于:

需要将Master显式地转换为母版页类型(MasterPage)。则需要在页面中使用@ MasterType指令,则可以创建对母版页的强类型引用:(该指令添加在内容页中)

<%@ MasterType TypeName="MasterPage" %> 或 <%@ MasterType VirtualPath="~/MasterPage.master" %>

//在内容页中对母版页中属性访问可修改为:

string strSearch = Master.SearchText;

一、主题是什么?

---主题是定义页面外观的文件集合。它可以包含CSS、皮肤和图像。主题不是替代CSS, 而是对CSS的统一管理和封装,在VS中使用更高效。

---主题是在Web站点的根文件夹中的特殊App_Themes文件夹中定义。在这个文件夹中需要创建定义实际主题的一个或多个文件夹。在普通页面中或内容页中设置。母版不能设置主题。

现在对上图进行说明:我们一般新建一个App_Themes文件夹,用来存储皮肤文件和主题文件。其中后缀为.css的为样式文件,后缀为.skin为皮肤文件。

TextBox.skin里面的文件代码为:

下面是一个样式文件的代码:

我们在Default.aspx文件中对这些样式进行引用:必须得加上Theme="simple",这里的simple是指的样式文件或者皮肤文件名。

从输出的结果我们可以看出:它只是对TextBox这个控件起作用。因为Simple.skin里面仅有TextBox的样式代码。

想到这里的时候,我们肯定会想到:我一个网站中肯定不止一个TextBox样式,如何使得不同的TextBox显示出不同的样式。那么,我们可以通过修改控件的ID来做到。

---TextBox.skin中

---浏览器中:

除了上面的那种方式,我们还可以设置控件的EnableTheming属性为false来达到目的。

两个Calendar控件,第二个控件中添加了一行EnableTheming="false"代码,使得第二个控件不执行Calendar控件执行的代码。

案例
:我们现在介绍一个切换背景图片的页面操作。

这里,我们会出现Green、Blue两个选择选项,然后我们直接选择就会得到想要的结果。

-、导入数据

上面这张图,我们可以看到导入数据这一项,点击导入数据

上面是我从我电脑里面随便选的的一个excel文件,然后点击选择就成。后面我们就进入了新的页面

这里我们需要注意的是选择输出类型,由于我们后面需要对矩阵内的数据进行运算,所以我们选择了数值矩阵,然后点击导入所选内容

在这里我们在工作区会发现一个example2,就是我们导入的数据。后面我们就可以进行数据操作了。

二、写入数据

这是将数据写入txt文件内的代码。

这是将数据写入excel文件中的代码,注意,这个a.xls文件是可以先不新建的,它会自己新建,除此以外,我们必须明白的是,我们写代码的时候example和example2文件的数据类型不一样,如果不加注意的话,我们后面可能导入不进去数据,如我们将example的文件写入a.xlsx文件中就会出问题。然后我们注意一下xlswrite和writetable两个的区别就好了,一个是写入excel文件,一个是写入文本中。相关的语法直接help就成。

这个是导入数据之后的excel文件,在左边的当前文件夹可见。

1、什么是数据源控件?

----用于从数据源中检索数据,然后将这一数据提供给数据检索控件。

----快速实现多种常用的数据源进行展示和交互。

----快速实现对数据源进行增删改查操作。

----是ASP.NET引入的一个新的数据抽象层。

----VS2010中含有的数据源控件:

~SqlDataqSource:SqlDataSource允许访问支持ADO.NET数据提供程序的所有数据源。可访问ODBC、SQL Server  OLE DB Orcle等。

~AccessDataSource:AccessDataSource专门对Access数据库进行的数据源控件访问。

~ObjectDataSource:ObjectDataSource可以对业务对象或其他返回数据的类执行特定的数据访问。

~XmlDataSource:XmlDataSource可以对XML文档执行特定访问,包括物理访问和内存访问。

~SiteMapDataSource:SiteMapDataSource可以对站点地图提供程序所存储的Web站点执行特定的站点地图数据访问。

~LinqDataSource:LinqDataSource用来访问支持LINQ的数据源。

但是,我们查看VS2017里面的数据控件,会发现里面没有AccessDataSource控件。

2、什么是数据绑定控件?

----可用于数据显示和编辑的控件。它在页面或表单对数据进行显示或编辑。

~分类:

列表控件 :用于显示记录列表的控件。 GridView、DataList
单项控件:一次只能显示一条记录。DetailsView 、FormView
分页控件: 在其他控件上分页。DataPager
其他控件: DropDownList、ListBox

3、联合使用数据源和绑定控件

----SqlDataSource控件:

----GridView控件

~以表格的形式显示数据源的值,每列表示一个字段,每行表示一条记录。该控件提供了内置排序、更新、删除、分页、行选、编程方式访问GridView对象、事件处理等功能。
~重要属性
AllowPaging: 分页
AllowSorting: 排序
AutoGenerateColumns: 是否为数据源中每字段自动创建绑定字段。一般为”FALSE”
Columns  列字段的集合
PageSize  每页记录数

~下面介绍一个GridView控件的使用案例:(本人使用的编辑器为VS2019,为更好地进行代码展示,直接截图显示)