ASP.NET中控件应用的思考

页面其实就做两件事情,第一件事情就是显示数据,第二件事情就是收集需要处理的数据。
现在,假设有一个容器,能给页面提供显示所需要的数据,也可以收集页面的数据,则整个页面只需要与该容器打交到就可以了。
后台页面甚至不需要一行代码。
这只是理想状态,这种理想状态可以实现吗?别的不说,就说显示数据,至少需要this.txtName.Text="abc";这样的代码吧,总不成在页面上用<%%>吧?有这样合适的容器吗?当提交页面的时候,没有后台代码,怎么知道要调用商业逻辑层的那个函数?

第一:这样的容器是有的,就是HttpContext(上下文),里面有一个Items,可以存储数据。
第二:不管是显示还是收集数据的时候,都不需要this.txtName.Text="abc";或<%%>这样的代码,我们可以扩展.net提供的控件。
拿TextBox来说,需要如何扩展呢?首先这个控件在页面载入的时候,判断HttpContext中有没有适合它的数据,如果有,则显示这些数据。
其次:用户提交页面的时候,这个控件自动将值写入HttpContext中。
那么,如何知道某个控件要显示什么值呢?现在来看,还无法知道,所以需要提供一个属性,ItemKey。这个属性的含义是HttpContext的Items项的键值,也就是说这个控件对应HttpContext中的值为HttpContext.Items[ItemKey]。
这样,只要我们在页面载入的时候,将数据写入HttpContext中,控件就可以自动显示相应的值。
在页面提交的时候,该控件也会自动将数据写入到HttpContext中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值