1.控件
父类型Control
FindControl(寻找子控件)
Controls 子控件集合
2.AutoPostBack 允许自动回发
作用:允许控件向服务器端提交请求
3.生命周期:页面对象从创建到销毁的过程,也就是处理请求的过程.
在Page_Load()中需要判断IsPostBack
4.错误处理
页面级别:当前页面的错误
全局:整个应用程序的错误
配置文件:整个应用程序错误,不能捕获异常,只能转向.
5.用户控件(自定义的服务端控件)
目的:重用界面元素及代码
<%--注册用户控件,Src指向控件,TagName标签名,TagPrefix前缀--%>
<%@ Register Src="~/MyControl.ascx" TagName="MyControl" TagPrefix="My"%>
6.页面重定向
<!--a-->
<a href="目标页.aspx?id=123&name=abc">转向</a>
<!--HyperLink-->
<asp:HyperLink ID="HyperLink1" NavigateUrl="~/目标页.aspx" runat="server">转向 </asp:HyperLink>
<!--js-->
<input type="button" name="name" value="js转向" onclick="location.href=‘目标页.aspx‘" />
//C#代码
Response.Redirect("~/目标页.aspx");
Server.Transfer("~/目标页.aspx");
面试题:Transfer和Redirect区别
Redirect:两次请求响应过程,转向后url变
Transfer:一次请求响应过程,转向后url不变,可以获得上一页的控件值,用在不想让用户看到真正的url的地方
7.在C#中操作客户端控件:向客户端发送js脚本来操作
代码:
ClientScript.RegisterStartupScript(this.GetType(), "key",
"<script>document.getElementById(‘txt‘).value=‘ddd‘;</script>");
在js操作服务端控件:使用js操作服务端控件生成的客户端控件
this.TextBox1.ClientID 获取有ASP.NET服务器控件生成的HTML标签控件的id
代码:
$(function () {
$("#<%=TextBox1.ClientID %>").val(‘aaa‘);
})
作业:建立一个用户控件,包含一个Label,TextBox,然后在一个页面中使用此控件.在页面的js中给TextBox赋值.
综合练习:日志记录模块
要求:
1.模块制作成一个程序集dll(类库),方便今后引用
2.类库中包含一个类LogAdmin,提供一个方法WriteErrorLog(),用于将异常信息记录到日志文件中.
3.什么信息要记录?
事件/Message/StackTrace(堆栈跟踪)
格式:
---------------------开始------------------------
时间:2015-9-8 16:21:00
消息:......
跟踪:StackTrace
---------------------结束------------------------
---------开始----------
时间:2015-9-8 16:21:00
消息:Message
跟踪:StackTrace
---------结束----------
4、日志文件路径不能写死,写在配置文件中
5、提供一个开关,打开时记录日志,关闭时不记录。开关放在配置文件中。
6、开发完成,建立新的解决方案测试一下