超级简单

当我在页面中使用ViewState ,通常是用一个属性表示,例如:

private int ViewState_UserID
{
     get { return (int) ViewState["UserId"]; }
     set { ViewState["UserId"] = value; }
}

写这样一组代码感觉比较麻烦,如果能像下面这样简单地使用就好了。

[ViewStateProperty("UserID")]
protected int ViewState_UserID { get; set;}

或者

[ViewStateProperty]
protected int ViewState_UserID { get; set;}

这里介绍一种超级简单的方式去实现:使用Attribute。

第一步:创建BasePage 类,它继承System.Web.UI.Page。这里使用了 Reflection和LINQ。

using System.Reflection;
using System.Linq;
public class BasePage : System.Web.UI.Page

第二步:在BasePage中使用一个内部类ViewStateProperty ,这个类继承 Attribute 。用Attribute的目的是描述页面中哪个属性是viewstate属性。用这 个属性来标识viewstate属性,因此它应该BasePage内部。

代码

[AttributeUsage(AttributeTargets.Property)]
public class ViewStateProperty : Attribute
{
     public string ViewStateName { get; private set; }
     internal ViewStateProperty(){
         this.ViewStateName = string.Empty;
     }
     public ViewStateProperty(string in_ViewStateName){
         this.ViewStateName = in_ViewStateName;
     }
}

[AttributeUsage(AttributeTargets.Property)]意味着这个attribute 只对 property类型可用。在public ViewStateProperty(string in_ViewStateName) 中初始化ViewState 的名称。默认情况下,ViewState 的名字为空。如果你想在 设置attribute的时候初始化ViewState的名字时,要将默认构造函数设置为私有 的。

时间: 2024-11-07 22:54:06

超级简单的相关文章

网页CSS技巧:闭合浮动元素超级简单的方法

css|浮动|技巧|网页 关于闭合浮动元素(clearing float)的方法现在已经很多了,你还不了解的话去old9的blog看看,有一篇闭合浮动元素. 这些方法我最喜欢就是 使用:after 伪类动态的嵌入一个用于清除浮动的元素,可惜代码量太大了,看着不够简洁.现在我看到有个方法超级简单.赶紧介绍一下. 原理是这样的,外围元素之所以不能很好的延伸,问题出在了overflow上,因为overflow不可见.见W3C的解释:In addition, if the element has any

PHP实例:实现超级简单的MVC结构

下面是一个超级简单的MVC结构实现,甚至连数据源都用了一个内置的固定数组,虽然简单,但其实众多的PHP Framework核心实现的思想应该和这个是差不多的 只不过一些framework提供了更多的方便开发者使用的工具,我也想自己来实现一个PHP的 框架,目前正在着手策划中,也希望自己能够从框架的开发中学习到更多的PHP设计思想和方法. Controller.php include 'Model.php'; include 'View.php'; class Controller {     p

include 指令-超级简单的问题 求帮助 求帮助

问题描述 超级简单的问题 求帮助 求帮助 谢谢大神们 解决方案 你的问题是什么呢 看下你的html还有编码 解决方案二: 解决方案三: 代码看不全,应该是jsp页面有问题,一点一点删代码.你就能看出来是哪行报错了 解决方案四: 编程是一种美德,是促使一个人不断向上发展的一种原动力.

server-数据库超级简单的语句统计,菜鸟求助

问题描述 数据库超级简单的语句统计,菜鸟求助 SQL. server 我想统计某个表中每个月的数据.请问语句怎么写呢? 解决方案 group by 分组就可以, 解决方案二: http://www.cnblogs.com/rainman/archive/2013/05/01/3053703.html 解决方案三: group by分组之后就可以进行查看了 解决方案四: group by分组之后就可以进行查看了 解决方案五: 基本就是group by 你不发表结构,肯定没法给你写SQL语句的 解决

91-关于背景图片(超级简单).........

问题描述 关于背景图片(超级简单)......... 问题描述:有一张图片1300 x 200px的图片用做网页背景,怎么样让图片铺满网页?而不是这样呢? 补充:比方网页像素是1366px 要让1300图片的长度变成1366px,而不是自动填,那样图片就不美了 解决方案 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml

强大的企业网站模板,带会员管理,更新维护超级简单。

强大的企业网站模板,带会员管理,更新维护超级简单.我在网上整整逛了一星期,找到不少漂亮的企业网站模板,又实用又大气,还带管理后台,嘿嘿,好东西不能一人独享,拿出来给大家! 模板地址:http://www.e000.com/design/site_package.php?s=dark这些模板是卓天网络建站宝盒里的,都带管理后台的,可视化编辑,很方便啊:用宝盒做网站,网站版块可以自己随时改动的,很灵活.模板不是免费的,不过有优惠可以免费送建站宝盒.需要的可以联系我,1284726634

哈,又一款超级简单的队列(MQ)实现方案来了~

开源的消息队列已经很多了,但大部分很重,实际环境下,很多可能只是使用到了一点功能而已,杀鸡使用牛刀,着实有些浪费了.很多时候,我们只想要一片绿叶,但它们给了我们整个的春天,很难消化.本着DIR精神, 也琢磨了一个超级简单的队列实现. 说是超级简单,嗯,绝对是超级简单,队列的存储采用Redis进行持久化存储,采用Netty提供HTTP方式的队列的出/入.Redis的客户端采用的Jedis.然后呢,然后就没了啊. 一.Redis Redis内置订阅发布模型(Publish/Subscribe),其缺

用jquery实现的一个超级简单的下拉菜单_jquery

用jquery实现的一个超级简单的下拉菜单. 效果图 初始效果  鼠标悬浮效果  代码 复制代码 代码如下: <!DOCTYPE html> <html> <head> <script type="text/javascript" src="jquery-1.11.1.js"></script> <style> nav a { text-decoration: none; } nav >

ie7+背景透明文字不透明超级简单的实现方法_javascript技巧

如果你现在还在为背景透明文字不透明而发愁的话,建议你来看看.当然IE6我已经放弃了,所以不要说不用PNG8的图片这样在IE6下没有效果,当然你也可以用滤镜.本人不建议使用滤镜.因为这样可能会出现其它问题!(如无法点击等等问题)做前端最怕的就是BUG,特别是IE6.滚蛋IE6!本文的核心就是利用PNG32透明图片来做背景然后平铺背景就行了.这样就不会存在背景透明文字也透明了.这样做起来超级简单你们说呢!图片只需要调整透明度即可.在PSD中把图片设置为20%的透明度保存为png就行了.(切忌:不要设