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">
<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实体监视结果如下图:
严以律己,宽以待人,三思而后行!