• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NET 动态添加自定义控件

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
动态添加自定义控件能加载控件不同设计的风格。满足不同的需求下面的动态添加就是实现,当用户选择不同的问题类型时那么问题的控件也就不同,取决于用户所选的问题类型,这里只设计两个问题的自定义控件,实现控件的动态加载,两个控件的代码如下:(我的两个控件都是将源于后台写在同一个页面)
 ASPNetSurvey.ascx:

 1<%@ Control Language="C#" ClassName="ASPNetSurvey" %>
 2
 3<script runat="server">
 4
 5    public bool KnowFast
 6
上面这个界面有两个属性,获取页面中Checkbox的选定状态,下面一个同样:
ASPSurvey.ascx: <%@ Control Language="C#" ClassName="ASPSurvey" %>  1<%@ Control Language="C#" ClassName="ASPSurvey" %>
 2
 3<script runat="server">
 4
 5    public bool KnowSlow
 6 下面这一个是动态调用这两个控件的代码(源与后台代码在同一个界面):
WebSurvey.aspx:

 1<%@ Page Language="C#" %>
 2
 3<%@ Reference Control="~/ASPSurvey.ascx" %>
 4<%@ Reference Control="~/ASPNetSurvey.ascx" %>
 5<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
 6
 7<script runat="server">
 8
 9    private Control _survey = null;
10
11    void Page_Load()
12
上面这个页面的代码,有很多地方需要提出来一下:
第一:对于加载的动态控件,如果包含自定义的属性和方法,那么在引用的时候必须使用<%@Reference%>,这里就有个区别了,如果是直接加载一个没有添加自定义成分的用户控件,则之需要用Page.Load()方法即可,一旦有自定义的成分(属性,方法,事件。。)就需要引用上面的指令了。如果不是动态添加的话,我们一般是使用<%@ Register %>指令<%@Reference%>,这两个怎么区分理解呢:前一个指令 是“引用”,毕竟这个控件没用放到这个页面临时加载而已,故只需要引用就够了,对于不是动态的我们用后一个指令“注册”,这样的指令可以理解为:我需要把一个控件拖到我的页面,贮存在我的页面,需要长时间存在了(除非你删除),那么我就需要注册了,这其实跟生活中的例子一样
第二,用户控件都是控件类,都是在System.Web.UI下的控件类,这里在引用ascx文件的控件类的属性时,只需要先实例化引用的用户控件类,在获取类中的属性。运行效果如下:

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NETCoreASP.NETCore+MVC搭建及部署发布时间:2022-07-10
下一篇:
ubuntu中下运行asp.net程序发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap