打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
动态加载用户控件的组件!(四)
(实在很懒,关于动态加载用户控件的内容实在写也写不完,说也说不完。关系到asp.net的一切!)       我们要做没有关联cs文件的aspx叶面。其实叶面的东西并不在aspx上,而是在ascx上。Aspx所起的作用只是一个入口。对组件的引用而已,而组件就可以管理很多的ascx页面,所谓的叶面ascx叶面也应该是没有关联cs的叶面。
所以整个系统所有的东西都是在组件里面,aspx是单纯的访问入口,ascx是纯页面的东西。Aspx入口调用组件,组件调用ascx页面以及相应客户的交互。
只有这样才能做到每工与后台的很好的分开。
完全可以有一个团队来开发页面(纯页面不需要任何的cs代码,全都是ascx),而有另一个团队来开发组件。最后组装成整个系统,由aspx调用组件就可以了。
让我们来作个无代码关联的ascx叶面,叶面上有个按钮,然后写个组件加载这个ascx叶面,以及如何响应这个按钮的事件!
(废话一下,写文章有时候不废话真是很痛苦的一件事情啊!)ascx叶面与处理叶面的后台代码分开是一件非常好的事情,不知你有没有发现一个叶面有只能与一个后台代码文件关联,不可能有两个类来关联这个叶面。而用组件来加载ascx以及相应事件,那么你就可以用同一个叶面ascx而有很多种不同的组件调用。可重用就大大的。不仅在同一个项目内重用,而是想用就用。
实例一下:
作个无关联cs文件的ascx页面。上面有个button. Id为 mybutton. 当然是run at server我们才能在组件中找到他了!ascx叶面也可以是文本文件。把后缀名改为ascx就行了。
用我前面写的loadskin来加载吧!然后在里面处理button 的onclick事件就可以了。
然后在aspx中引用这个组件就行了。当然也可以在ascx中引用,都是一个效果。
Ascx起名为a.ascx. 上面只有一个button
也是继承SkinnedControl
namespace Region.Controls {
/// <summary>
/// 加载用户组件,加载不同的组件
/// </summary>
public class Abutton : SkinnedControl {
Button bt;
public Abutton() : base()
{
base.SkinPath = "a.ascx";
}
/// <summary>
/// 初始化组建摸板,进行必要的动态设置或更新
/// </summary>
override protected void InitializeSkin(Control skin) {
bt = (Button)skin.FindControl("myButton");
bt.Click +=new EventHandler(bt_Click);
skin.DataBind();
}
/// <summary>
/// 获取组件
/// </summary>
public override ControlCollection Controls {
get {
EnsureChildControls();
return base.Controls;
}
}
private void bt_Click(object sender, EventArgs e)
{
bt.Text = "心雨楼";
}
}
}
我么在写个同样的组件叫ebutton 根Abutton一样。
把事件改为bt.Text = "心雨楼!!!!!!!!";
让我们来看看无代码的aspx是什么样子的!
运行之后就这个样子:
分别点击之后就这样:
相同的页面做不同的事情。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ASP.NET动态加载用户控件的实现方法
用户控件和自定义控件的定义的区别
aspx向ascx传值
用户权限设计(一)——ASP.NET系统用户权限设计与实现【转】
琳婕小筑- 学习Duwamish 7.0笔记 -
acl 权限控制
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服