Spring.Web 之双向数据绑定(Bidirectional data binding)

        目前ASP.NET中的数据绑定是单向的,即允许开发人员将数据模型帮定到页面控件上显示,提交表单的时候,必须再次将页面控件值绑定到数据模型。大家都不太喜欢写这样的代码。
        通过自定义特性,Spring.Web提供了控件与数据模型的双向绑定的功能,减少了代码量。
        双向绑定使用起来很方便,但页面类需要从Spring.Web.UI.Page类继承。

        public class UserRegistration : Spring.Web.UI.Page
        {
                [Binding("Text", "UserInfo.Email")]
                protected TextBox email;
                // ……
                // 此属性即数据模型
                private User m_User; 
                public User UserInfo
                {
                    get { return m_User; }
                    set { m_User = value; }
                }   
        }

        Binding特性有可选参数OneWay(第三个参数),如果为true,退化为单向绑定,即不再更新模型数据,对只读的数据或者通过计算得到的只读数据特别有用。另一个可选参数为Format,用于指定绑定值的显示格式,通常和OneWay联合使用,提供日期或数值自定义格式,支持String.Format方法支持的格式表达式。
        类型转换,绑定时,Spring.Web试图进行数据转换,如果指定Format参数,Spring.Web将使用此参数将数据模型值转为String,否则,使用.NET的类型转换机制。
        数据绑定事件,Spring.Web的页面基类在.NET页面的生命周期加入两个事件:DataBound和DataUnbound。DataBound事件在控件值被更新后激发,在PreRender事件之前。事件发生顺序为:Load――>DataBound――>PreRender,这样是合适的,在Load事件处理代码中对数据模型做出修改,能反映在控件上。DataUnbound事件在数据模型被更新后激发,在Load事件之后,此时是回发。

参考:spring-net-reference.pdf。

很遗憾,使用Spring.NET 1.1 Preview 2没有测试成功,。我会继续跟踪,新版本或许能解决问题。

转载于:https://www.cnblogs.com/fym37/archive/2006/05/23/407096.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值