Asp.net用户控件(UserControl)的一些设计说明
用户控件有时候会包含多个服务器控件,这个时候需要将用户控件的属性暴露出来,供调用窗体使用,
一般情况是直接将用户子控件暴露给出来,
Usercontrol无论是否通过动态加载,UserControl的Page_Load多后于Page的Page_Load事件执行。
参考代码(页面-.aspx Paag_Load代码):
protected void Page_Load(object sender, EventArgs e)
{
// Trace.Warn("窗体Paag_Load");
membership = LoadControl("../Controls/MembershipEdit.ascx") as Admin_Controls_MembershipEdit;
membership.ID = "MEUI"; //membership 控件的Page_Load会在Page_Load完成后触发
phMembershipEdit.Controls.Add(membership);
if (!IsPostBack)
{
InitView();
Action();
}
}
参考:
http://www.cnblogs.com/BoKeRen/archive/2008/01/30/1058844.html
http://msdn.microsoft.com/zh-cn/library/ms178472(v=VS.80).aspx
除了Init()和Unload()之外的所有事件都是从最外面到最里面被激发的,即先执行Page上的实际再执行Control上的对应事件,针对动态加载控件有个“追赶理论”:
当在页面上的Page_Load加载用户控件时,用户控件的,Init,LoadViewState,LoadPostData等,直到追赶到Page_Load时就停止,而Page_Load事件会在页面的Page_Load结束后才开始执行,就是说追赶到页面的Page_Load后将停止 更多参考:http://www.cnblogs.com/wdfrog/archive/2009/12/11/1621603.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述