频道直达 - 学院 - 下载 - 交易 - 特效 - 字库 - 手册 -排名-工具- 繁體
网页教学网站开发 设为首页
加入收藏
联系我们
建站搜索: 虚拟主机  域名注册     常用广告代码   用户注册 | 用户登陆
您当前的位置:中国建站之家 -> 网站开发设计技术教程 -> Asp.Net教程 -> 动态加载用户控件的组件!(三)

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

作者:未知  来源:转载  发布时间:2005-7-20 10:17:51  发布人:acx

减小字体 增大字体

上一篇文章写到动态加载用户控件的简单应用

页面是用来浏览信息的!但是更重要的是和用户交互,根据不同的需求提供不同的内容服务,这是一种服务或是一种更贴近用户的人性化。(又在胡言乱语了!^_^)

动态加载叶面,根据不同的用户权限加载不懂的内容服务。根据用户的相应加载相应的内容服务。

还有另外一个应用就是做到页面与代码的分离。在vs2003里,一般ascx或aspx文件,在刚建立的时候都直接跟一个cs文件关联。那么我们在写程序的时候就不能分开来做。作叶面和写后台代码的不能分开。为了能够做到作业面与作后台代码的能完全分开来,我们可以把后台的所有代码当作一个组件来做就可以了!这样一个不用跟cs文件关联的aspx叶面文件直接引用一个组件就可以了!那么组件可以加载不同的ascx文件最后组成一个完整的叶面。就这样一个项目的开发就像个机车制造厂一样组装不同的零件就有辆车出来了。软件也可以拿来组装,零件我们也可以订制,最后整体就可以出来了!(常常看别人的文章的时候怎么就觉得废话那么多,原来发现我废话也不少!^_^)

好!让我们step by step ,就从不需要关联cs文件的aspx叶面开始吧!(在vs2005里,我新建aspx叶面的时候就直接没有cs文件关联。但是直接有个不完整类型隐藏起来了。怎么用基类就成为问题了!隐藏部分应该是继承了Page了!那么根据单继承的原则我们是不能在继承别的类型的了。这个问题有待研究。)

根据aspx叶面运行原理。叶面要跟服务端交互必须通过一个run at server的form标签才能行得通。因此我不要先来写个form组件,那么form就应该是个容器的形势来承载叶面所有要与服务端交互的元素,(容器太重要了,namespace也可以看作容器,只不过是不能放东西而已,是虚拟的容器)

1、做form容器组建:继承继承他就行了,注意一点就是唯一ID的问题。自己继承的可能该改变了ID,那么回传的时候就找不到了啊。切记!当然render叶面的时候是通过遍历所有form容器内所有的组件来一个个render出来。所以要改UniqueID。

示例一下:

using System;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.ComponentModel;



namespace Region.Controls {



public class MyForm : System.Web.UI.HtmlControls.HtmlForm {



public override string UniqueID {

get {

if (this.NoNameContainer && this.NamingContainer != this.Page ) {

return base.UniqueID.Substring(base.UniqueID.LastIndexOf(":")+1);

} else {

return base.UniqueID;

}

}

}



protected override void RenderAttributes(HtmlTextWriter writer) {

this. NoNameContainer = true;

base.RenderAttributes (writer);

this. NoNameContainer = false;

}



protected override void RenderChildren(HtmlTextWriter writer) {

this. NoNameContainer = true;

base.RenderChildren (writer);

this. NoNameContainer = false;

}



private Boolean NoNameContainer = false;

}

}




将本文收藏到QQ书签与更多好友分享
[打 印]
[] [返回上一页] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
精彩推荐
热门文章
· 注册码大全二
· 注册码大全四
· 注册码大全一
· 要10G免费网络硬盘的请进..
· 通过google 赶快来赚美金..
· 注册码大全十
· 头像-qq头像(qq新头像)4..
· 注册码大全三
· 让你轻松架设FTP服务器1..
· 梦幻背景图片7
· 卡通动物图片6
· 风景图片8
· 网页制作素材-按钮素材2..
· 注册码大全九
· 让你轻松架设FTP服务器5..
· 50MB免费空间 FTP PHP M..
关注此文读者还看过
· NextRecordset 和 GetRo..
· 网站加速 PHP 缓冲的免费..
· 在.Net 中枚举COM对象的..
· Oracle数据库不同版本间..
· 一个高ai的分页函数和一..
· 网页代码常用小技巧2
· ASP进阶学习必经之认识数..
· 动态调用动态语言之Java..
· 模拟dos中输入字符的效果..
· 无组件文件上传代码实例..
· PHP文本型数据库分类排序..
· 简单学数据库:操作数据..
· 抢先试用ASP.NET 2.0中的..
· 可恶的Bug
· SQL Server 中易混淆的数..
· ASP 3.0高级编程(三十五..
相关文章
· ASP.net中动态加载控件时一..
· 《简单实现Crystal Report动..
· 发现一个.Net中动态加载控件..
· 动态加载用户控件的组件
· 动态加载用户控件的组件!
· 动态加载用户控件的组件!(..
· 如何动态加载multiline的te..
· 用Visual C#动态生成组件,..
· ASP.NET中实现模版的动态加..
· 服务器端动态加载DataGrid控..
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 人才招聘
网站合作、内容监督、商务咨询:QQ: 9576619
Copyright ? 2005--2008 中国建站之家版权所有
未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
免责申明:中国建站之家(www.jz123.cn)上的所有提供下载的软件和资源
均来源于网络,为软件或程序作者提供和网友推荐收集整理而来,仅供学习
和研究使用。如有侵犯你的版权,请立即联系我们,本站将在3个工作日内删除。
粤ICP备05092265号