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">
<html xmlns="
http://www.w3.org/1999/xhtml">
<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实体监视结果如下图: