SpringNet 绑定集合数据

Spring NET 出新版本了!增加了好多功能,WCF都加进去了,最重要的是通过一个exe安装后,文档,示例项目及源码全部提供!强悍! 有兴趣的朋友可以从这里去下载http://www.springsource.org/spring-community-download ,注册后可下载,安装exe后在开始菜单中可以看到如下:

新版本SringNet实现了类到页面控件的间接绑定,可以将数据绑定到控件上,控件的数据也可以直接在向服务器端提交i时直接通过类来获取,

大大地提高了数据可操作性。。。
备注:目前对SpringNet技术正在研究,有出错的地方欢迎拍砖。
实现例子如下
1.绑定类
/// <summary>
///Users 的摘要说明
/// </summary>
public class UsersInfo
{
    public UsersInfo()
    {
        
    }
    public int Age { set; get; }
    public string UserName { set; get; }
    public string UserMail { set; get; }
}

 2.绑定页面

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CollectionBindDemo.aspx.cs" Inherits="SpringBing_CollectionBindDemo" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <table>
        <%foreach (UsersInfo ui in Users)
          {%>
            <tr>
                <td>用户名:</td><td><input name="txtUserName" type="text" value="<%=ui.UserName %>"/></td>
                <td>年龄:</td><td><input name="txtAge" type="text" value="<%=ui.Age %>"/></td>
                <td>邮箱:</td><td><input name="txtMail" type="text" value="<%=ui.UserMail %>"/></td>
            </tr>
            <%} %>
            <tr><td colspan="2"><input type="submit" value="添加" /></td></tr>
        </table>
    </div>
    </form>
</body>
</html>

 

 3.绑定页面后台代码

using System;
using System.Collections;
using System.Collections.Generic;
using Spring.DataBinding;

public partial class SpringBing_CollectionBindDemo : Spring.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack) 
        {
            users.Add(new UsersInfo());
        }
    }
    private IList<UsersInfo> users;
    protected IList<UsersInfo> Users { get { return users; } }
    protected override void InitializeDataBindings()
    {
        string bNames = "txtUserName,txtAge,txtMail";
        HttpRequestListBindingContainer hrlBinds = new HttpRequestListBindingContainer(bNames, "Users", typeof(UsersInfo));
        hrlBinds.AddBinding("txtUserName", "UserName");
        hrlBinds.AddBinding("txtAge", "Age");
        hrlBinds.AddBinding("txtMail", "UserMail");
        BindingManager.AddBinding(hrlBinds);

    }
    protected override void InitializeModel()
    {
        users=new List<UsersInfo>();
    }
    protected override void LoadModel(object savedModel)
    {
        users = (IList<UsersInfo>)savedModel;
    }
    protected override object SaveModel()
    {
        return users;
    }
}

 

呈现效果
首次启动
 

单击 “添加” 按钮后

输入数据再 “添加”后

 

 

最让人兴奋地是提交到服务器端得数据可以直接从实体(users)中获取!可以不采用Request啦。。。

提交到服务器端时:后台代码users实体监视结果如下图:

 

 

源代码下载

 

posted on 2012-07-15 03:13  Lucifer_007  阅读(264)  评论(0编辑  收藏  举报