Web控件可分三类
HTML控件
html服务器控件是在HTML控件的基础上,额外增加了一个在当前页面唯一的ID属性值和一个runat = "server" 属性
html服务器控件必须放在服务器表单中,必须在<form runat="server" id="form表单的ID"></form>标记之中
html服务器控件最终在web服务器处会被解释成普通HTML控件标记发送到客户端浏览器
<input id="Text1" type="text" />
运行在客户端,没有回传,不能用VIEWSTATE维持状态,浏览器完成事件处理
HTML服务器控件
<input id="Text1" type="text" runat="server" />
Web服务器控件 事件驱动编程模型,跨浏览器兼容性,统一的编程接口
简单控件 容器控件 数据绑定控件 数据验证控件及用户控件
asp.net服务器控件都直接或间接派生自System.Web.UI.Control类
ClientID 控件的标识符,在客户端HTML中表示为控件的id属性
ID 在服务器端编程时用户操作控件的ID
skinID 使用主题外观之后控件的ID
UniqueID 控件的分层ID,在客户端HTML代码中表示为控件的name属性
<asp: runat ="server"></asp:>
用户控件和自定义控件
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
48-57
65-90
97-122
FileUpload
<input type="file" .../>
FileBytes byte[] 上传的文件内容的字节数组表示形式
FileContent Stream 上传文件的数据流
FileName string 上传文件在客户端的名字
HasFile bool 指示是否上传的文件
PostedFile HttpPostedFile 获取文件基础的HttpPostedFile
HttpPostedFile对象提供了已经上传的文件的单独访问
ContentLength int 上传的文件内容的字节长度
ContentType string 上传文件的MIME内容类型
FileName string 上传文件在客户端的名字
InputStream Stream 指向上传文件的Stream对象
FileUpload控件上传文件一般有如下步骤:
利用HasFile属性判断是否上传了文件
在服务器上指定一个物理路径,并检查这个物理路径是否存在,若不存在则先创建
指定上传文件在服务器上的上传路径,利用SaveAs()保存上传的文件
还可以检查上传的文件格式是否符合要求以及文件内容大小是否符合要求
将相对路径或URL地址保存起来,以便客户访问或者下载
Panel控件是一个容器控件,用来组容器存储一组容器控件,它常用来存放一组业务逻辑上相似的控件组,设置Panel控件的某些属性就相当于设置了这个控件组里所有控件的相应属性,操作起来相当方便
PlaceHolder控件的用作容器控件,不过控件本身在客户端不产生任何HTML标记
PlaceHolder控件有一个Controls属性,这个属性表示这个容器控件容纳的控件的集合,Controls属性是ControlCollection类的一个实例,这方法向集合中个类有Add()方法增加控件,用Remove()方法删除控件,还有一个Count属性表示这个集合*有多少个控件
对于一个普通HTML表单,它有两个重要的属性action和method
action属性指明当前表单提交之后由哪个程序来处理,这个处理程序可以是任何动态网页或者servlet或者CGI(Common Gateway Interface),在asp.net里面一般都是由aspx页面来处理的。
method属性指明表单提交的方式,它有两个可能值get和post。
get:会在地址栏会显示参数名和参数值,面post方式不会。用post提交参数相对来说更隐蔽一些,也相对安全一些。
get方式提交有最大字符数的限制,而post方式则没有这个限制。
1.第一个基础html知识,Request.Form 接收的是Name值,而非ID值
2.第二个基础asp.net知识,asp.net的控件的ID和Name值是一样第,但是其在客户端表现是control.clientID而非control.ID
3.第三个基础知识asp.net本身也是可以跨页提交滴,如果是使用自己带的跨页提交就不存在上述问题,不过asp.net自己带的跨页提交有另外的接收方式
服务器端表单比HTML表单多了两个属性:id和runat属性。
如<form id="form1" runat="server"></form>
可以不指定action属性,表示由当前页面处理,也可以不指定method属性,默认为post方式提交表单。
在服务器端表单里,我们不光可以使用HTML控件,还可以使用HTML服务器控件,还可以使用asp.net控件
在asp.net页面中可以有多个不带runat="server"表单,但只能有一个服务器表单
HTML服务器控件还提供一些区别于普通HTML控件的属性,比如HTML的Button服务器控件提供了一个onserverclick属性,这个属性表示当点击这个按钮之后会提交给此属性指定的服务器端方法进行处理。
<input type="submit" runat="server" id="btnOK" value="提交" onserverclick="btnOk_Click"
protected void btnOK_Click(Object object,EventArgs args)
business logic layer
data Access layer