对用户控件(ascx)属性(property)赋值
来源:互联网 发布:淘宝乐乐运动是正品吗 编辑:程序博客网 时间:2024/05/19 16:51
Insus.NET写此博文,是对用户控件(ASCX)的属性赋值经验与技巧分享。
是这样子的,在做新闻站点时,一般都会有分很多类别。 在站点首页会显示最新,最TOP 或最Hot的新闻或文章,而且是分类别来分的。因此,我们会设计成一个用户控件,用户控件的数据源均是来自Article这个表,只是传入不同的category 的ID值和 Top几条来实现。
用户控件.cs大约如下,高亮代码是两个属性,当然你的真实环境也许只有一个,或是更多的属性。
现在来演示网页引用用户控件,并赋值,分几种方法或是重构优化它们。
在创建一个网页,也就是说,你的网点上,哪个网页需要引用这个用户控件。用户控件呈现是需要在网页aspx。
第一种,最简单常用。打开.aspx,切换至design模式,
然后把用户控件拉入网页:
现在可以切换至source 模式,就可以直接在.aspx赋值了,参考高亮对属性赋值。
第二种,如果你不想在.aspx赋值的话,可以在.aspx.cs进行赋值。把用户控件引入网页之后,按F7来到.aspx.cs代码页。
上面第一种方法与第二种方法,只是赋值的位置不同而已。
OK,我们来演示第三种方法。为了功力发挥最高效果,长远的设计打算,因此Insus.NET先写一个接口,接口主体是一个函数,返回类型就是UserControl。
用户控件实作这个接口,参考下图高亮部分代码:
实现动态加载,不必在网页中的design和source切换来切换去。在网页中拉一个控件容器
去.aspx.cs代码程序,参考下图:
引用两个命名空间#9和#10行代码。其中#9代码,是为了能够应用到Reflection(反射)技术。
第#22行代码,是动态加载用户控件,并转换为接口。
第#25和#31行代码,箭头位置的字符串,就是用户控件的两个Public属性名称。
第#28和#34行代码,即是对两个属性赋值。
第#37行代码,是把用户控件加载入PlaceHolder容器中去。
好的,三种方法,教你怎样在网页中,为用户控件的属性赋值。技术相信你增长不少吧。
整个演示已经完成。
接下为,Insus.NET再给你附送另外的技术,重构。你回过头来看看第三种方法的代码。第25至29与31至35两组代码,相似度都非常高。因此,减少代码的冗余,需要把它们写成一个方法。
拿掉上图片中comment的代码。抽取出来,写成SetValue()方法。这样子,代码就变得清晰多了。成了这个样子:
完成否,还有吗?
是的,没有完成,重构到这里,Insus.NET有想起,每个用户控件,属性有少有多。少的话也许没有什么关系,多的话,还得写很多
SetValue(uc, "TOP", 10); SetValue(uc, "Category", 1);
这些相似的代码。为了解决这个问题,Insus.NET再次重构它们。希望能得到更好的效果。
其实,还是可以把上图中的第32行代码,写成一个扩展方法:
也就是说,把赋值部分,存放在一个集合中。
呵呵,完成了。方法可以选择性,觉得那一种好,就用那一种。
<script type="text/javascript"><!--google_ad_client = "ca-pub-1944176156128447";/* cnblogs 首页横幅 */google_ad_slot = "5419468456";google_ad_width = 728;google_ad_height = 90;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- 对用户控件(ascx)属性(property)赋值
- .ascx用户控件
- 在用户控件(ASCX)创建用户控件(ASCX)
- 添加SectionLevelTutorialListing.ascx 用户控件
- 新建MyMenu.ascx用户控件
- 在aspx文件中调用ascx用户自定义控件的属性
- 调试sharepoint开发中的用户控件ascx
- asp.net动态加载ascx用户控件
- 给用户控件ascx传递值
- 制作简单的ascx用户控件
- aspx ascx 赋值 传值
- aspx 页面与ascx用户控件传值的问题
- aspx 页面与ascx用户控件传值的问题
- C# aspx页面动态加载ascx用户控件
- 用户控件(.ascx)调用网页(.aspx)的方法
- aspx 页面与ascx用户控件传值的问题
- Asp.net中用户自定义控件 ascx的使用
- asp.net在调用页控制用户控件(ascx页面)
- 为制作的网站指定浏览器显示和收藏的图标
- Android下使用Properties文件保存程序设置
- shell的case语句简述(shell的流控制)
- 网络安全概述
- 自定义total 显示时间
- 对用户控件(ascx)属性(property)赋值
- 面试题:交通灯管理系统
- 数据结构--表达式计算
- sql访问数据库的代码
- JUnit+Ant生成报告
- C/C++中作用域详解
- Cocos2d-x学习之windows 7 android环境搭建
- UVa 714 Copying Books 二分 + 贪心 (最大值最小化问题)
- shell的shift用法