动态加载用户控件的组件!(四)

原创 2004年08月25日 16:07:00

       (实在很懒,关于动态加载用户控件的内容实在写也写不完,说也说不完。关系到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<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

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是什么样子的!

 

运行之后就这个样子:

分别点击之后就这样:

 

 

相同的页面做不同的事情。

 

未完(持续)

C# WinForm中添加用户控件

有的时候默认提供的工具
  • haelang
  • haelang
  • 2014年11月01日 15:49
  • 3768

C# WinForm 封装自定义组件(控件)Dll

封装自定义控件很简单,没什么技术含量,这里通过封装自定义的数字文本框实例简单总结一下: 【1】新建自定义控件库 -- Windows Forms Control Library 【2】...
  • aoshilang2249
  • aoshilang2249
  • 2014年11月18日 20:16
  • 4808

C# 窗口和控件的操作

一。 窗口和窗口之间传值 1第一种方法用静态变量 在form1里定义 public static string  passvalue;在form2里赋值; 2第二种方法用new的参数 定义form2时...
  • gaiazhang
  • gaiazhang
  • 2016年09月02日 16:52
  • 737

用户控件&自定义控件----.Net再学

开始学习.Net到现在两年了快,开始学习java 也有大半年了,中间做项目,又开始.Net的学习。这次做.Net项目,后台代码敲的不是太多,重点放在了UI上,这也是这篇博客要写的内容有关,做UI就少不...
  • wangyongxia921
  • wangyongxia921
  • 2015年01月30日 22:42
  • 1258

Android基本界面控件

本文转自:基本界面控件 大多数的界面控件都在android.view和android.widget包中,android.view.View为他们的父类,还有Dialog系列,android.ap...
  • qq_27650777
  • qq_27650777
  • 2016年06月28日 14:52
  • 2140

【Java Swing探索之路系列】之四:Java Swing用户界面组件(一)

作者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWel...
  • AllenWells
  • AllenWells
  • 2015年06月30日 13:58
  • 3428

组件、控件和插件的区别

组件、插件、控件的区别 控件:是编程中用到的,按钮就算是一个控件,窗口也是等等 组件:是软件的一部分.软件的组成部分. 插件:网页中用到的,flash插件,没有它浏览器不能播放flash. ...
  • haiross
  • haiross
  • 2014年03月31日 13:33
  • 23232

DevExpress 用户控件 分页(上)

说明:使用用户控件分页,完成后,使用时非常简单,数据绑定,调用自己写的一个事件就OK了 前期准备工作: (1)添加一个用户控件 命名PageCtrl (2)打开代码:   ...
  • u013816709
  • u013816709
  • 2015年04月29日 14:00
  • 3537

Android输入控件详解

输入控件输入控件是您的应用用户界面中的交互式组件。Android 提供了多种可在 UI 中使用的控件,如按钮、文本字段、定位栏、复选框、缩放按钮、切换按钮等。向 UI 中添加输入控件与向 XML 布局...
  • u010321471
  • u010321471
  • 2016年11月29日 10:21
  • 1069

Swing 自定义控件学习笔记

做一个用Swing开发的小工具,需要用到一个可拉伸的矩形控件,学习了下极客学院的自定义控件的视频教程记录一下~^_^ 自定义控件主要实现Jcomponent中的4个方法来绘制控件: paintCo...
  • kevin007ys
  • kevin007ys
  • 2015年07月08日 00:07
  • 519
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:动态加载用户控件的组件!(四)
举报原因:
原因补充:

(最多只允许输入30个字)