惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
V
Visual Studio Blog
NISL@THU
NISL@THU
S
Security Affairs
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
大猫的无限游戏
大猫的无限游戏
Microsoft Security Blog
Microsoft Security Blog
云风的 BLOG
云风的 BLOG
The Register - Security
The Register - Security
博客园_首页
月光博客
月光博客
aimingoo的专栏
aimingoo的专栏
I
InfoQ
Spread Privacy
Spread Privacy
P
Proofpoint News Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
爱范儿
爱范儿
T
Tor Project blog
有赞技术团队
有赞技术团队
美团技术团队
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Hacker News: Ask HN
Hacker News: Ask HN
Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
Google Online Security Blog
Google Online Security Blog
Vercel News
Vercel News
Webroot Blog
Webroot Blog
S
Security @ Cisco Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Application and Cybersecurity Blog
Application and Cybersecurity Blog
D
DataBreaches.Net
J
Java Code Geeks
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
腾讯CDC
博客园 - 司徒正美
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Security Archives - TechRepublic
Security Archives - TechRepublic
G
Google Developers Blog
The GitHub Blog
The GitHub Blog
小众软件
小众软件
www.infosecurity-magazine.com
www.infosecurity-magazine.com
N
News and Events Feed by Topic
Forbes - Security
Forbes - Security
T
Troy Hunt's Blog
C
Check Point Blog
D
Docker
Latest news
Latest news
Martin Fowler
Martin Fowler
T
Tenable Blog

博客园 - BlackAngel2bAssassin

使用SQL SERVER 内部函数进行密码加密和校验小问题 还原MOSS 默认的权限级别 破译moss 2007 中的权限提升功能 后台代码中使用Post 进行跳转 在自定义HttpHandler 中使用Session 一个DataGrid 的CheckBoxColumn FireBird 点滴之JDBC连接字串 (转贴)实现带有数据绑定的客户端脚本控制的二级联动菜单 (转贴)使用Repeater实现自定义多列数据绑定 - BlackAngel2bAssassin - 博客园 (转贴)使用PagedDataSource给Repeater、DataList增加分页 (转贴)给Repeater、Datalist和Datagrid增加自动编号列 (转贴)如何取得DataGrid绑定列和模板列中的值 重新理解.net remoting SPS 中修改用户密码的WebPart 工程 FireBird 的使用点滴(一) 使用Webpart包装ActiveX组件 制作用户修改密码Webpart 的简短步骤 一个忘却了的SharePoint 的Bug 抽取word、excel、pdf等文件[转载]
asp.net 1.1 用户控件的第二种重用
BlackAngel2bAssassin · 2005-11-22 · via 博客园 - BlackAngel2bAssassin

虽然.net framework 2.0 已经是发布了,在使用asp.net 中也有了些改变。但是.net framework1.1 仍然是我现在主要使用的开发平台。在啊asp.net 1.1 中加入了用户自定义控件这个新的模型,可能不能说是模型,或者说是方式吧。个人觉得这个是取代在以前的asp中使用的 include 包含一个文件的方式。很多时候,将一些固定功能的代码做成控件,可以更好地实现重用,这个应该没有人有疑问吧?
但是在asp.net 1.1 做出来的用户控件可以在一种层次上实现重用,即在需要使用相同功能的地方,只需要将已做好的用户控件放在那里就可以。但这只是固定代码固定数据的重用。如果是需要固定代码动态数据的重用呢?在这里说明一下,我在这里的的固定代码,固定数据重用是什么意思。其实它的意思就是,将实现某一具体功能,获取具体某一固定数据的代码的重用,就像有一个用户登陆的用户控件,它在首页中实现的功能和使用的数据和在专门登陆的页面上实现的功能和使用的数据都是一致的。这也是我所说的用户控件的第一种层次的重用。其实这种方式的重用已经可以减轻了一部份的工作,但是想进一步使这些自定义的用户控件可以进一步重用,而不必要重新编写相关的代码来实现近似的功能,就需要再进一步实现另一种层次的重用。
在上面所说的使用固定代码和动态数据来实现第二种层次的重用。应该所有做WEB开发的人都知道在一个HTML标签中可以加入不同的属性标识来设定这个标签的显示或状态,例如在一个<td width="50%"> 可以在一个表格中设定宽为50%,也可以设定其他属性来改变它的显示,在asp.net 1.1 的绝大部分服务器控件都是可以设定它的某个属性来改变它的显示或其他状态,其中最基本的就是那个ID属性了,应该每一服务器端控件都会用到。
用户自定义控件其实是将实现某一个功能的页面在不包含<html><head>以及<body> 的一个页面显示。即其实说白了,asp.net 1.1 中的用户自定义控件其实也是一个asp.net的页面,这也说明它们两个都是间接或直接继承同一个父类的。好了,既然是页面就可以接受输入参数了,而且用户自定义控件和普通的aspx页面一样都有一个Page_Load的事件,而且在加载时都会触发这个事件。也是因为都是间接或直接继承同一个父类,所以自身的实例都有HttpResponse,HttpRequest,HttpContext,HttpCookie这些对象的实例引用。然而,有这些对象的实例引用就好办了。在用户控件可以通过获取querystring的值来实现动态数据。但是如果是没有这些相关的输入参数又应该如何实现呢?当然,是有办法的,记得在没一个服务器端控件都有一个ID的属性,然而用户自定义控件也不例外,虽然可以说用户自定义控件其实是一个实现某个功能的页面,但是在HTML视图方式下,他们同样有一个ID 来标识。要实现在没有输入参数的重用就是通过它们的ID来实现了。
首先,在web.config或自定义的xml文件定义,一些相关的这个要实现固定代码动态数据的ID号和对应ID值的用户控件的参数值。然后将这些用户控件放到不同页面上,并根据在配置文件中定义的id号来标识这些相同的用户控件。最后,就是取得动态输入参数了。在后台代码中获取该用户控件的ID值,然后使用该ID值作为搜索配置文件中参数值的键值,就可以获取到不同ID值的输入参数值,这样也就可以实现所谓的固定代码,动态数据的重用。
如有不足的地方请指出。

posted on 2005-11-22 14:16  BlackAngel2bAssassin  阅读(1333)  评论()    收藏  举报