028.用户控件、生命周期

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、开发完成,建立新的解决方案测试一下

时间: 2024-11-28 23:32:49

028.用户控件、生命周期的相关文章

ASP.NET页面生命周期与控件生命周期

ASP.NET页面生命周期 (1)PreInit 预初始化(2)Init 初始化(3)InitComplete 初始化完成(4)PreLoad 预加载(5)Load 加载(6)LoadComplete 加载完成(7)PreRender 预输出(8)PreRenderComplete 预输出完成(9)Unload 卸载 ASP.NET控件生命周期 -- 实例化(Instantiate) 控件被页面或另一个控件通过调用它的构造器所实例化.这个步骤之后所列出的阶段,仅当控件加入控件树中才会发生. --

第一篇:初识ASP.NET控件开发_第三节:&ldquo;生死有序&rdquo;的控件生命周期

一.Page本质是一个Control 我们首先要澄清的第一个概念是页面类Page本质是一个控件类,它派生于TemplateControl类,而TemplateControl派生自Control类.既然饭我没有乱吃,自然话也不会乱讲.借田有良老师的翠花给大家上证据如下: 二.Control的"生死之序" 1.实例化(Instantiate) 我们写控件一般不要接触此活动. 2.初始化(Initialize) [初始化自己,创建它的子控件(但该过程控件的状态没有加载).触发该控件的OnIn

.net用户控件

用户控件用户控件是个什么东西?自定义的反复重用的控件集合 好处?1.代码重用2.结构良好3.分工开发4.局部缓存 难点:一.交换信息: 注意信息的交换只在相邻层之间进行交换,如果是嵌套交换信息除Session外都需要一层一层的写代码交互 (一)从页面向用户控件交换信息.代码写在页面中. 1.用户控件名.FindControl("用户控件中的控件的ID") TextBox textBox1 = WUC1.FindControl("TextBox1") as TextB

用户控件与页面间相互给各自的控件赋值

用户控件 ->页面 ((Label)this.Parent.Page.FindControl("AAA")).Text = "ABC"; AAA:页面控件ID Label:页面控件类型 页面 -> 用户控件 ((HiddenField)POPUSER_1.FindControl("hidNO")).Value = "VNBB"; POPUSER_1:用户控件ID HiddenField:用户控件中需要处理的控件的类

用户控件,动态创建添加用户控件

用户控件的制作步骤 1,新建一个项目,文件>新建>项目. 2,添加>新建项>用户控件.文件类型为.cs 使用用户控件 在用户控件设计业点击工具栏中的生成项,选择第一项生成解决方案,或直接点F6: 生成成功后在windows窗体的工具栏最顶端就会显示此用户控件 动态添加控件 输入一个值为n,点击按钮,动态生成n个按钮,并编号号 private void button1_Click(object sender, EventArgs e) { //先获取用户输入的是几 int count

WinForm用户控件、动态创建添加控件、timer控件--2016年12月12日

好文要顶 关注我 收藏该文 徐淳 关注 - 1 粉丝 - 3 0 0 用户控件: 通过布局将多个控件整合为一个控件,根据自己的需要进行修改,可对用户控件内的所有控件及控件属性进行修改使用 动态创建添加控件: 1 //定义控件类型 2 Button btn = new Button(); 3 //控件名称……等属性,也可以直接绑定各种事件 4 btn.Name = "mybutton" + i.ToString(); 5 //添加到窗体 this 可以替换为 容器控件 6 this.Co

无边框窗体和用户控件以及权限

无边框窗体: 就是吧窗体的边框去掉,然后自己做按钮设置功能. 无边框窗体的移动: 将下面代码直接复制粘贴,将窗体的鼠标按下事件的方法改成下面方法的名字就可以直接使用 1 //窗体移动API 2 [DllImport("user32.dll")] 3 public static extern bool ReleaseCapture(); 4 [DllImport("user32.dll")] 5 public static extern bool SendMessag

js清空web用户控件的值

假设你的用户控件里面有: <asp:DropDownList ID="DropDownList1" runat="server"> <asp:ListItem Text="111" Value="111"></asp:ListItem> </asp:DropDownList> 然后你在aspx页面中注册这个控件: <%@ Register Src="~/WebUs

用户控件(二)--常见4 种路径问题解决:

二.路径:1.问题: 添加到用户控件中的图片以及超链接 都会有固定的路径,当将用户控件用到其他页面中后,对应的页面路径需要发生变化,否则无法正常作用显示:解决: 在添加到用户控件中的 HTML 标记或者标准控件中添加:runat= server id=“id名”:这样服务端会根据使用情况自动更正图片或者超链接路径:注意: 超链接可以直接使用标准控件:Hyperlink 它里面直接带 runat=server: 2.问题?样式表中值的路径:(例)background-image:url(路径) 解