[ASP] asp.net学习笔记1

来源:互联网 发布:梦里花落知多少作者 编辑:程序博客网 时间:2024/05/16 18:23
asp.net学习笔记1【转】

1 配置方法--直接将配置文件复制到服务器上,不需要手动再配置
web.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>

<system.web>

<!-- 动态调试编译
所以应该只在调试时将该值设置为 true,而所有其他时候都设置为false
-->
<compilation defaultLanguage="vb" debug="true" />

<!-- 自定义错误信息
设置 customErrors mode="On" 或 "RemoteOnly" 以启用自定义错误信息,或设置为 "Off" 以禁用自定义错误信息。
为每个要处理的错误添加 <error> 标记。
-->
<customErrors mode="RemoteOnly" />

<!-- 身份验证
此节设置应用程序的身份验证策略。可能的模式是 /“Windows/”、
/“Forms/”、/“Passport/”和 /“None/”
-->
<authentication mode="Windows" />


<!-- 授权
此节设置应用程序的授权策略。可以允许或拒绝用户或角色访问
应用程序资源。通配符:"*" 表示任何人,"?" 表示匿名
(未授权的)用户。
-->
<authorization>
<allow users="*" /> <!-- 允许所有用户 -->

<!-- <allow users="[逗号分隔的用户列表]"
roles="[逗号分隔的角色列表]"/>
<deny users="[逗号分隔的用户列表]"
roles="[逗号分隔的角色列表]"/>
-->
</authorization>

<!-- 应用程序级别跟踪记录
设置 trace enabled="true" 以启用应用程序跟踪记录。如果 pageOutput="true",则
跟踪信息将显示在每一页的底部。否则,可以通过从 Web 应用程序根浏览 "trace.axd" 页来查看
应用程序跟踪日志。
-->
<trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />


<!-- 会话状态设置
默认情况下,ASP.NET 使用 cookie 标识哪些请求属于特定的会话。
如果 cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
若要禁用 cookie,请设置 sessionState cookieless="true"。
-->
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;user id=sa;password="
cookieless="false"
timeout="20"
/>

<!-- 全球化
此节设置应用程序的全球化设置。
-->
<globalization requestEncoding="utf-8" responseEncoding="utf-8" />

</system.web>
</configuration>

2 数据库--用DataSet来代替RecordSet
过去,RecordSet("字段名").
现在,DataSet.Tables("表名").

3 数据库控件:DataGrid、Repeater、DataList

4 过去使用HTML中提供的表单控件,现在用ASPX提供的各种WEB控件,只要服务器中有

5 支持事件处理,基本的Page_load(页面被调用时)、Page_unload(页面被释放时),在服务器上触发

6 ASPX中有两种主要的Server控件,WEB控件、HTML控件

7 ASP使用的是VBscript语言,ASPX使用的是c#语言(大小写敏感)

8 组成
ASP.Net Web Form ASPX
ASP.Net Web Service ASMX
ASP.Net Application

9 使用类似JSP的二次编译技术

10 注释使用<%----%>

11 使用<% @ Import Namespace="???.Data" %>来包含Namespace

12 Request对象是System.Web 这个Namespace中的类HttpRequest
使用Request.QueryString("var")要比Request("var")快

13 GET方法只能传递256字节的数据,POST方法只能传递2M的数据
POST方法比GET方法要安全

14 获取当前程序所在虚拟路径Request.ServerVariables["PATH_INFO"]
获取当前程序所在绝对路径Request.ServerVariables["PATH_TRANSLATED"]
注:Server.MapPath方法可以将虚拟的转为绝对的

15 Request.Browser 用来获得客户端浏览器的信息 等同ASP中的BrowserCapabilities组件
Request.Browser.Version
Request.Browser.Cookies……

16 Request.TotalBytes 请求内容的大小
Request.UserHostAddress 用户的IP
Request.UserHostName 用户的主机名
Request.UserHostLanguage 用户的使用语言

17 Response 对象是System.Web 这个Namespace中的类HttpRponse

18 Response.ContentType="text/html"
Response.Clear() 清除缓存中的HTML信息(不包括头信息)
Response.ClearContent() 清除缓存中的HTML信息(包括头信息)
Response.ClearHeaders() 只删除头信息
Response.Expires = number 设置显示的信息在Cache中失效的时间长度,按分钟计
Response.ExpiresAbsolute = Data Time 同上
Response.Buffer = Boolean
Response.Flush() 立即输出缓存中的内容
Response.End() 结束程序的执行

Response.Write ("一定要有括号")//注意在ASP.NET 必须要在输出字符串上加括号
Response.BinaryWrite() 不将内容转换为字符串,直接输出(比如图片的二进制信息,通过这个方法可以直接显示图片)
Response.WriteFile("C://mytest.txt") 直接写入文件,文件必须存在

17 Server 对象是System.Web 这个Namespace中的类HttpServerUtility

Server.HtmlEncode 将HTML代码转换成不会执行的HTML标签符号
Server.HtmlDecode 同上,逆操作
Server.MapPath 将虚拟路径转换为绝对路径 例:Server.MapPath(".")+"//读取当前目录文件.txt"
Server.Transfer(path) 执行所指的程序,并终止当前程序
Server.Execute(path) 执行所指的程序,执行完毕后,继续执行当前程序

-------->HTML控件

18 HtmlInputFile控件,可以解决文件上传的问题
利用HtmlPostedFile类,该类存在于System.Web,该类可以通过HtmlInputFile控件的PostedFile属性,或Response.Files数组来得到

上传多个文件,利用Response.Files

19 HtmlForm控件属性
Action Form提交的接受程序
Enctype 提交内容的编码类型
Method 提交请求的方式
Name Form的名字
Target 提交目标的窗口的名字
一个程序中只能有一个HtmlForm控件

20 HtmlTable、HtmlTableRow、HtmlTableCell

21 HtmlSelect

22 所有的Web控件都具有保值的特性,部分HTML控件也具有这个特性

普通的html标签,只要加上id和runat="server"就变为了html控件
比较通用的HTML控件属性,InnerHtml,InnerText
style属性 定义HTML标签样式的方法同样适合于定义HTML控件,也可以用style属性集合
.Style["color"] = "#000000"
.Style["fontstyle"] = "italic"
Attributes属性 控件的属性值和属性可以通过Attributes任意指定
Control.Attributes["attributename"] = Value

<--------HTML控件

--------->WEB控件

23 Web控件比HTML控件来的抽象,标签为 <asp:控件名 id="控件ID" 属性名="控件属性" runat="server" />

24 AdRotator控件
<asp:AdRotator id="IDName" AdvertisementFile="Data.xml" runat="Server" />

25 Calendar控件
<asp:Calendar id="IDName" runat="Server" />
包含的属性有:TitleSytle、TitleFormat、NextPrevFormat、SelectionMode、SelectedDate、SelectedDates

当NextPrevFormat="CustomText"时可以使用这两个属性NextMonthText、PrevMonthText
当SelectionMode的值不同时,可以赋值SelectWeekText、SelectMonthText属性

事件OnSelectionChanged、OnDayRender

26 Button控件
Button类Web控件都包含属性:CommandName;CommandArgument
包含事件:OnClick、OnCommand

27 CheckBox控件
包含属性:Checked、AutoPostBack(是否自动提交,为FALSE时不触发事件)、Text
包含事件:OnCheckedChanged、OnClick

28 CheckBoxList控件 可以看做是CheckBox控件的集合,用<asp:ListItem></asp:ListItem>定义一个子项
子项的属性 .Items[i].Selected
属性:RepeatColumns一行显示几个、RepeatDirection显示排列方向、RepeatLayout 排版设计格式(Table、Flow)

29 RadioButton与RadioButtonList控件 与 两个CheckBox控件类似
注意,当多个RadioButton一起使用时,要设置GroupName属性,以保证一组中只有一个按钮被选中

30 Image控件 略
ImageButton控件
事件:onmouseover、onmouseout、onclick

31 LinkButton 属于Button类控件,其连接由事件处理来完成
支持 OnClick OnCommand

32 DropDownList控件
DropDownList.Items.add(ItemText)//添加的Item的Value和Text相同
DropDownList.Items.Add(new ListItem(ItemText,ItemValue))
OnSelectedIndexChanged 改变选择属性事件
AutoPostBack 自动提交属性

33 PlaceHoder 与 Panel 的不同之处是其包含的子控件操作必须用代码来实现

34 当所有需验证的控件均通过验证后,Page中的IsValid属性将会设置为true
当使用IsValid属性前,要先调用Validate()方法,以保证验证信息发送到Page对象,使验证生效

35 验证控件
RequiredFieldValidator 验证是否填写

CompareValidator 比较两个控件的值<ControlToValidate> Operate <ControlToCompare>关系是否符合验证条件
比较控件与某个值<ControlToValidate> Operate <ValueToCompare>关系是否符合验证条件
验证是否为某种类型Operator="DataTypeCheck"、Type="Integer"

RangeValidator 验证某值是否在规定的范围内
MinimumValue、MaximumValue、MinimumControl、MaximumControl

RegularExpressionValidator 利用ValidationExpression属性(正规表达式),验证是否包含某些字符

CustomValidator 设定客户端和服务器端的验证函数,ClientValidationFunction(客户端)、OnServerValidate(服务器端)
先调用客户端,再调用服务器端

ValidationSummary 在验证失败时显示所有验证控件的ErrorMessage属性
HeaderText属性、DisplayMode属性、ShowMessageBox属性
如果要屏蔽客户端的验证,需要在网页中输入<% Page Language="C#" ClientTarget="DownLevel" %>
36 控件样式
Web控件有一个CssClass属性,可以设置自定义的CSS样式
HTML控件Web控件都可以用Style属性来设置控件样式
Web控件可以用ApplyStyle方法来设置控件的样式,参数为Style对象变量

<---------WEB控件

--------->用户控件

37 用户控件的实现效果类似HTML中的iFrame,用户控件存放在.ascx文件中
不可以在控件文件ascx中使用htmlform控件,除非可以保证调用该控件的页面中不存在htmlform(基本不可能)
用户控件中的代码,不能包含<% Page %>
使用一个用户控件时,首先在文件头部声明该控件<% @ Register TagPrefix="名字空间" TagName="控件名称" Src="*.ascx"%>
然后在要引用该控件的地方写<名字空间:控件名称 runat="server" />

38 编写控件属性的方法
public string Show
{
get
{
return 。。。。;//获取属性值时触发
}
set
{
。。。。 = value;//设置属性值时触发
}
}
注意属性设置必须用public修饰符

39 编写控件的事件处理
编写控件的事件处理,必须在控件内部完成,也就是必须写在ascx文件中
编写控件的事件时不能使用public修饰符,因为用户控件的事件是不能对外公开的
<script Language="C#" runat="server">
void Button_Click(Object sender,EventArgs e)
{
show.Text = "提交事件处理完毕";
}
</script>
<asp:Button id="submit" Text="提交" OnClick="Button_Click" runat="server" />

40 通过代码创建用户控件
UserControl uc = (UserControl)LoadControl("UserControl4.ascx");//声明用户控件变量
((UsercontrolCS)uc).Show = "此控件是通过程序代码创建的";//控件类型UsercontrolCS时在ascx文件中指定的
((UsercontrolCS)uc).Color = "Blue";//设置控件属性
Page.Controls.Add(uc);//将用户控件件加入Page页面


<---------用户控件

---------->DataBind
绑定数据包含在<%#%>标签内,这些代码只有在Databind()方法被调用时才执行
Page以及所有的Server控件都具有Databind()方法
对于容器而言,当父亲执行DataBind()时,其所有孩子也执行DataBind()

41 公共变量绑定、控件属性绑定、集合绑定(绑定的集合必须支持IConnection接口)、绑定表达式

<----------DataBind

---------->Ado.Net
42 主要对象 Connection、Command、DataAdapter
又分为OleDB用的的OleDBConnection、OleDBCommand、OleDBDataAdapter(兼容性较好2003-8-4)
Sql server专用的SqlConnection、SqlCommand、SqlDataAdapter

43 两个Connection对象具有相同的属性和方法
ConnectionString连接字符串
DataBase打开的数据库
DataSource打开的数据库连接实例
Open
Close

44 OleDBConnection的使用
OleDBConnection MyConn = new OleDBConnection();
MyConn.ConnectionString='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c://DataBase//db1.mdb;'

45 SqlConnection的使用
SqlConnection MyConn = new SqlConnection();
/*连接字符串一*/MyConn.ConnectionString='user id=sa;password=123456;initial catalog=northwind;data source=mySqlserver;Connect Timeout=0'
/*连接字符串二*/MyConn.ConnectionString='server=(local);database=mydatabase;Trusted_Connection=yes;'

46 两个Command对象都具有的属性和方法
Connection使用的Connection对象实例
CommandText执行的SQL语句或存储过程名
CommandType执行语句的类型(StoredProceduce、TableDirect、Text)
Parameters参数集合(主要用在存储过程中)
ExecuteReader执行SQL,返回DataReader对象
ExecuteNonQuery执行SQL,返回影响记录数

OldDBCommand myComm = new OldDBCommand('SQL语句',Connection对象);

47 两个DataReader对象具有的属性和方法
FieldCount记录的字段总和
IsClosed
Close
Getstring以String类型返回指定列中的值
GetValue以自身类型返回指定列中的值
GetValues返回当前记录中所有字段值的集合
Read将指针指向下一记录

48 DataSet 在对Dataset进行操作时,影响的仅仅是DataSet中存储的数据
只有在使用了DataAdapter.Update(MyDataSet)方法后,这些操作才会影响数据库

49 DataSet的使用
MyDataGrid.DataSource = MyDataSet;
//绑定设置方法二 MyDataGrid.DataSource = MyDataSet.Tables["内部表名"].DefaultView
//绑定设置方法三 MyDataGrid.DataSource = MyDataSet.Tables[0].DefaultView
MyDataGrid.DataMember = "内部表名";//指定绑定的是该DataSet中的哪个表
MyDataGrid.DataBind();

添加
DataRow myDataRow = MyDataSet.Tables["内部表名"].NewRow();
myDataRow["Name"] = ...;
MyDataSet.Tables["内部表名"].Rows.Add(myDataRow);
修改
DataRow myDataRow = MyDataSet.Tables["内部表名"].Rows[0];
myDataRow["Name"] = ...;
删除
DataRow myDataRow = MyDataSet.Tables["内部表名"].Rows[0];
myDataRow.Delete();

事务
if (DataSet.HasErrors)
{
DataSet.RejectChanges();
}
else
{
DataSet.AcceptChanges();
}


50 DataAdapter使用(注意,DataAdapter使用的Connection对象,不必Open)
//方法一
OleDbDataAdapter MyAdapter = new OleDbDataAdapter();
MyAdapter.SelectCommand.Connection = ...
MyAdapter.SelectCommand.CommandTExt = ...
//方法二
OleDbDataAdapter MyAdapter = new OleDbDataAdapter(strselect,objectconnection);//只用于查询

51 DataAdapter的方法
MyAdapter.Fill(MyDataSet,起始记录行号,需要的记录数,"在DataSetzhon表名")//设置起始点的参数,可用于分页
MyAdapter.Update(MyDataSet,"在DataSetzhon表名")(注意:在使用这个方法时要使用OleDbCommandBuilder对象来产生SQL语句)
OleDbCommandBuilder custCB = new OleDbCommandBuilder(MyAdapter);
CommandBuilder对象可对单个表的数据改变自动产生SQL语句
<----------Ado.Net

52 DataGrid(WEB控件),将数据以表格的形式表现
<sap:DataGrid id="DataGridName" runat="server" />

属性
AutoGenerateColumns是否自动产生列,如果设为TRUE,则会将所有的数据显示出来
如果要使用自定义字段名,则该属性必须为FALSE

自定义显示普通列
BoundColumn <asp:BoundColumn HeaderText="ShowText标题" DataField="FieldName" />
自定义显示超链列
HyperLinkColumn <asp:HyperLinkColumn HeaderText="标题"
Text="直接设置超链显示的文字"
DataTextField="超链显示的字段"
DataNavigateUrlField="与超链有关的字段"
DataNavigateUrlFormatString="设置超链的显示格式,其中{0}表示DataNavigateUrlField=字段"
/>
自定义显示按钮列
ButtonColumn <asp:ButtonColumn HeaderText="标题"
Text="按钮的文字(需要在DataGrid中添加OnItemCommand属性)"
ButtonType="PushButton|LinkButton"
/>
自定义显示编辑按钮列
EditCommandColumn <asp:EditCommandColumn HeaderText="标题"
EditText="编辑(需要在DataGrid中添加OnEditCommand属性)"
UpdateText="更新(需要在DataGrid中添加OnUpdateCommand属性)"
CancelText="取消(需要在DataGrid中添加OnCancelCommand属性)"
CommandName=""
CommangArgument=""
ButtonType="PushButton|LinkButton"
/>
自定义显示模板列
<asp:TemplateColumn HeaderText="标题">
<ItemTemplate>
………………
</ItemTemplate>
<HeaderTemplate>
………………
</HeaderTemplate>
<FooterTemplate>
………………
</FooterTemplate>
<EditTemplate>
………………
</EditTemplate>
</asp:TemplateColumn>

Example:
<asp:DataGrid id="DG_New" runat="server" AutoGenerateColumns="False" OnItemCommand="DataGrid_ItemCommand">
<Columns>
<asp:BoundColumn HeaderText="光盘名称" DataField="CD_Name" />
<asp:HyperLinkColumn HeaderText="光盘类型" DataTextField="CD_Type" DataNavigateUrlField="CD_Type" DataNavigateUrlFormatString="ShowMore.asp?name={0}" />
<asp:ButtonColumn HeaderText="标题" Text="按钮的文字" ButtonType="PushButton" />
<asp:EditCommandColumn HeaderText="操作区" EditText="编辑" UpdateText="更新" CancelText="取消" ButtonType="PushButton" />
</Columns>
</asp:DataGrid>

原创粉丝点击