ASP.NET项目开发全程实录(第4版)学习总结

第2章  51电子商城网站

1、客户使用的功能就是前台(不是以界面划分,以身份划分),除此以外对数据库的操作就是后台管理模块

 

2、aspx是页面文件

aspx是页面文件

ascx是用户控件,用户控件必须嵌入到aspx中才能使用。

ascx是用户控件,相当于模板

其实ascx你可以理解为Html里的一部分代码,

只是嵌到aspx里而已,

因为aspx内容多的时候实在是不太好管理,

而且你把公共的Html部分写成ascx也可以公用在很多aspx里

 

3、aspx后台与前端的控件的所谓“winform式”的开发,是以hiddenField为中间数据交换实现的。

 

 

 

 

 

5、使用用户自定义控件ascx,可以单独拥有一个相关的后台页面

 

 

6、hashtable可以作为键值对

 

 

7、dataTable也可以自定义(不一定要从数据库获取),如果只是购物车有信息,此时可以不生成订单信息,存储到数据库(因为用户可能会取消),只有付款了才有必要生成订单信息,此时可以临时构建一个购物车dataTable,然后与GridView绑定,如下:

 

 

 

8、SQL Server 2005之后版本:请使用 varchar(max)、nvarchar(max) 和 varbinary(max) 数据类型,而不要使用 text、ntext 和 image 数据类型。

 

Microsoft SQL Server 2005 中引入了 max 说明符。此说明符增强了 varchar、nvarchar 和 varbinary 数据类型的存储能力。varchar(max)、nvarchar(max) 和 varbinary(max) 统称为大值数据类型。您可以使用大值数据类型来存储最大为 2^31-1 个字节的数据。

 

9、哈希表(Hashtable)

在.NET Framework中,Hashtable 是 System.Collections 命名空间提供的一个容器,用于处理和表现类似 key-value 的键值对,其中 key 通常可用来快速查找,同时 key 是区分大小写;value 用于存储对应于 key 的值。

 

Hashtable 中 key-value 键值对均为 object 类型,所以 Hashtable 可以支持任何类型的 key-value 键值对。

 

10、GridView,DataList,Repeater 控件区别(非常好!!)

https://www.cnblogs.com/phone/archive/2010/09/15/1826891.html

 

11、后台中,根据id,来查找相应的控件

 

 

 

***************************第3章  企业门户网站***************************

1、web自定义控件,可以在一个页面里,多个局部展示,各自需要绑定数据时,分别控制比较方便(因为每个ascx有独立的后台生命周期处理),这样就不用在一个主页中进行多个局部展示的数据绑定,而且可以实现控件的复用

 

 

2、Eval与DataBinder.Eval的区别

DataBinder.Eval的基本格式
DataBinder.Eval(Container.DataItem,"XXX","{0}")
<%# DataBinder.Eval(Container.DataItem,"xxxx")%>
或者<%# DataBinder.Eval(Container,"DataItem.xxxx")%> 
还有一种据说微软说效率很高的方式
<%# ((DataRowView)Container.DataItem)["xxxx"]%> 但是这种方式必须要在前台页面导入名称空间System.Data,否则会生成错误信息<%@ Import namespace="System.Data" %>

 

DataBinder.Eval的基本格式 
DataBinder.Eval(Container.DataItem,"XXX","{0}") 
<%# DataBinder.Eval(Container.DataItem,"xxxx")%> 
<%# DataBinder.Eval(Container,"DataItem.xxxx")%> 


问题1、他们是有什么不同? 
问题2、他们是否可以相互替换? 
问题3DataBinder.Eval(Container.DataItem,"") 这个ContainerDataItem分别都是什么? 

1Eval是对数据的只读绑定,被绑定的子控件所属的父控件(比如GridView)不能用此子控件接收用户输入的修改。Bind是双向绑定,所谓双向,是数据源---显示界面的双向数 

据流动,即读/写。 
2Eval可以替换为Bind,但会降低性能;反之不能替换。 
3Container即容器,指父控件;DataItem指父控件所绑定的数据源的当前行,不是字段。 

如果只是显示值<%#Eval("字段名")%>就可以了
如果是要修改值<%#Bind("字段名")%>就可以了



以下两种的显示是相同的 

<%# Eval("name") %> 

<%# DataBinder.Eval(Container.DataItem,"sex") %>

 

 

3、

 

 

 

 

 

 

2、退出当前用户,除了session设置为null,还要讲session进行clear、adandon(取消当前会话)操作

 

4、使用母版、自定义控件控件,构建大部分内容,只有内容页面进行数据绑定,这样可以减轻在一个后台页面中进行所有数据绑定的工作(红框为自定义控件)

 

 

5、数据控件的刷新:

①调用Bind( )

 

②Bind()方法实现:可以进行分页

 

 

 

6、GridView的数据项绑定,注意事项:

 

 

7、GridView的事件,可以自行添加

 

 

 

 

 

*************第4章  图书馆管理系统*************

  1. 如下,可以实现才菜单的权限管理(不同权限的人,看到的菜单不同)

注:li中可以嵌套ul

 

2、dataSet/dataTable/rows[ ][ ]  层级关系

 

 

3、退出系统操作,清理session、重新定向

 

 

5、aspx页面最先加载>master母版页其次加载>自定义控件ascx最后加载

 

 

 

 

 

 

 

 

 

 

*************52同城信息网*************

  1. 前台:只要是用户使用的功能,就可以归为前台,例如58同城中用户的信息浏览和发布,都是前台功能

2、TreeNode树形菜单,可以指定target,这样就将跳转的页面,跳转到指定的target中(如:name为mainframe的iframe中)

 

3、如果submit控件中有onclick事件,首先触发onclick事件,然后提交页面到服务器

 

4、如果使用纯服务端button,不需要form,因为服务器button会向后台提交

ASP.NET项目开发全程实录(第4版)学习总结

 

5、判断用户是否合法进入后台

ASP.NET项目开发全程实录(第4版)学习总结

 

6、一个控件可以使用多个验证控件进行验证

ASP.NET项目开发全程实录(第4版)学习总结

 

 

 

7、//pds是分页数据源!如果直接绑定数据源,每次翻页要指定indexStartindexEnd

//使用分页数据源感觉唯一的好处是方便指定当前页

//无论是分页数据源、还是直接使用数据源,每次提交页面都要重新获取数据源

ASP.NET项目开发全程实录(第4版)学习总结

 

 

***********************第7章  Show—企业个性化展示平台***********************

1、子页面可以使用以下方式加载到主页面

ASP.NET项目开发全程实录(第4版)学习总结

 

注:使用以下方式将子页面,加载到指定的div中

ASP.NET项目开发全程实录(第4版)学习总结

 

2、可以使用panel容器,来实现tab菜单的效果

ASP.NET项目开发全程实录(第4版)学习总结

3、导航target(如treeNode)到iframe中的子页面的模式,可以避免反复提交,

ASP.NET项目开发全程实录(第4版)学习总结

5、以下是判断gridview的行是否是数据行(因为还有标题行、footer行)

ASP.NET项目开发全程实录(第4版)学习总结

 

6、issuanceInfo.aspx页面设计很巧妙,左边栏、右边栏分别使用两个iframe进行构建,

ASP.NET项目开发全程实录(第4版)学习总结

 

ASP.NET项目开发全程实录(第4版)学习总结

 

7、dl,dt,dd标签的使用

dl就是定义一个列表

dt说明白了就是这个列表的标题
dd就是内容,能缩进
ULOL性质差不多

<dl>

    <dt>标题标题</dt>

    <dd>内容内容</dd>

    <dd>内容内容</dd>

</dl>

 

 

 

**************第9章  播客网**************

  1. Asp.net中使用第三方插件的配置:

ASP.NET项目开发全程实录(第4版)学习总结

 

  1. panel中添加datalist可以实现滚动面板的作用:

ASP.NET项目开发全程实录(第4版)学习总结

 

3、删除一条数据库中的视频的操作步骤

ASP.NET项目开发全程实录(第4版)学习总结

 

4、section标签

注意:section不是通用容器元素。如果仅仅是用于设置样式或脚本处理,应用div元素。一条简单的准则是,只有元素内容会被列在文档大纲中时,才适合用section元素。

 

至于何时使用,基本上可以这两点:

section 不是一个专用来做容器的标签,专用的是 div

section 里应该有 标题(h1~6),但文章中推荐用 article 来代替

我们可以理解为一个非文章段落,有明确 id 的一个特殊模块容器(不是专用以包住块的容器)。

 

也就是说,一般情况下作为元素容器,使用div而不是section,那么section就没有用了吗?图样图森破。

这种情况下使用section就比div要好

section,顾名思义就是一个章节,比如:

 

<section>

<h1>WWF</h1>

<p>The World Wide Fund for Nature (WWF) is....</p>

</section>

1

2

3

4

至于为什么要用,是为了语义化,有section、article、dl看这多舒服,人也好理解,计算机也好理解,比满眼的div好多了。

5、脚本中可以嵌入后台代码,记着加’  ‘

ASP.NET项目开发全程实录(第4版)学习总结

6、只是根据字段从数据库中获取数据(不双向绑定),使用Eval

ASP.NET项目开发全程实录(第4版)学习总结

 

 

7、使用分页数据源pageDataSource进行分页很方便,但是每次都要重新获取数据源

ASP.NET项目开发全程实录(第4版)学习总结

 

8、启动第三方应用进程的方式

ASP.NET项目开发全程实录(第4版)学习总结

 

 

 

9、在数据控件每一行,进行数据绑定时触发的事件

ASP.NET项目开发全程实录(第4版)学习总结

 

10、

showSelect控件会触发selectedIndexChange事件(选择状态改变事件)

ASP.NET项目开发全程实录(第4版)学习总结

 

ASP.NET项目开发全程实录(第4版)学习总结

 

 

************************第10章  仿百度知道之明日知道************************

1、linq实现的分页功能

ASP.NET项目开发全程实录(第4版)学习总结

2、gridview数据行自定义命令

ASP.NET项目开发全程实录(第4版)学习总结