Spring.Web 之双向数据绑定(Bidirectional data binding)
本文内容纲要: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没有测试成功,。我会继续跟踪,新版本或许能解决问题。
本文内容总结:Spring.Web 之双向数据绑定(Bidirectional data binding)
原文链接:https://www.cnblogs.com/fym37/archive/2006/05/23/407096.html
以上是 Spring.Web 之双向数据绑定(Bidirectional data binding) 的全部内容, 来源链接: utcz.com/z/296554.html