Asp.Net22.0中ObjectDataSource+Formview实现添加,修改
2006-12-14 15:36
495 查看
在asp.net2.0中使用ObjectDataSource+Formview可以很容易实现对对象的添加和修改。我们都知道在Asp。net2。0中加入ObjectDataSource可以很方便来绑定业务逻辑层的代码,把UI层的数据通过Formview绑定传入到数据逻辑层中。
我们来看看ObjectDataSource中几个关键属性:
DataObjectTypeName:用于在模型层定义的对象。
TypeName:包括新增,修改方法的业务逻辑层的对象。
InsertMethod:新增方法的名称
UpdateMethod:修改方法的名称
看下面这个例子:在业务逻辑层定义了PersonManager对Person类进行新增和修改的方法
namespace Model
...{
public class Person
...{
private string _name;
private int _identityNumber;
public string Name
...{
get ...{ return _name; }
set ...{ _name = value; }
}
public int IdentityNumber
...{
get ...{ return _identityNumber; }
set ...{ _identityNumber = value; }
}
}
}
namespace BLL
...{
public class PersonManager
...{
public static void InsertPerson(Person person)
...{ }
public static void UpdatePerson(Person person)
...{ }
public static Person FindPerson(string IdentityNumber)
...{ }
}
}
Web界面
<body>
<form id="form1" runat="server">
<div>
<asp:FormView ID="FormView1" DataSourceID="objectDatasource1" runat="server">
<InsertItemTemplate>
<table cellpadding="0" cellspacing="0">
<tr>
<td>姓名:</td>
<td><asp:TextBox ID="NameTB" Text='<%# Bind("Name") %>' runat="server"></asp:TextBox></td>
</tr>
<tr>
<td>身份证:</td>
<td><asp:TextBox ID="IdentityNumber" Text='<%# Bind("IdentityNumber") %>' runat="server"></asp:TextBox></td>
</tr>
</table>
</InsertItemTemplate>
<EditItemTemplate>
<table cellpadding="0" cellspacing="0">
<tr>
<td>姓名:</td>
<td><asp:TextBox ID="NameTB" Text='<%# Bind("Name") %>' runat="server"></asp:TextBox></td>
</tr>
<tr>
<td>身份证:</td>
<td><asp:TextBox ID="IdentityNumber" Text='<%# Bind("IdentityNumber") %>' runat="server"></asp:TextBox></td>
</tr>
</table>
</EditItemTemplate>
</asp:FormView>
</div>
<asp:objectdatasource ID="objectDatasource1" TypeName="Model.Person" DataObjectTypeName="BLL.PersonManager" SelectMethod="FindPerson" InsertMethod="InsertPerson" UpdateMethod="UpdatePerson" runat="server">
<SelectParameters>
<asp:Parameter Name="IdentityNumber" />
</SelectParameters>
</asp:objectdatasource>
这样就完成了后台业务逻辑层和UI层的绑定。
当新增和修改一个Person,只需要在后台调用Formview1.Insert(true)或者Formview1.Update(true)。即可完成
比2003少很多代码吧
当然如果你在BLL使用NHibernate,这样对一个表单的数据操作就非常方便。有时间再给一个具体的案例讲述NHibernate+Formview。
我们来看看ObjectDataSource中几个关键属性:
DataObjectTypeName:用于在模型层定义的对象。
TypeName:包括新增,修改方法的业务逻辑层的对象。
InsertMethod:新增方法的名称
UpdateMethod:修改方法的名称
看下面这个例子:在业务逻辑层定义了PersonManager对Person类进行新增和修改的方法
namespace Model
...{
public class Person
...{
private string _name;
private int _identityNumber;
public string Name
...{
get ...{ return _name; }
set ...{ _name = value; }
}
public int IdentityNumber
...{
get ...{ return _identityNumber; }
set ...{ _identityNumber = value; }
}
}
}
namespace BLL
...{
public class PersonManager
...{
public static void InsertPerson(Person person)
...{ }
public static void UpdatePerson(Person person)
...{ }
public static Person FindPerson(string IdentityNumber)
...{ }
}
}
Web界面
<body>
<form id="form1" runat="server">
<div>
<asp:FormView ID="FormView1" DataSourceID="objectDatasource1" runat="server">
<InsertItemTemplate>
<table cellpadding="0" cellspacing="0">
<tr>
<td>姓名:</td>
<td><asp:TextBox ID="NameTB" Text='<%# Bind("Name") %>' runat="server"></asp:TextBox></td>
</tr>
<tr>
<td>身份证:</td>
<td><asp:TextBox ID="IdentityNumber" Text='<%# Bind("IdentityNumber") %>' runat="server"></asp:TextBox></td>
</tr>
</table>
</InsertItemTemplate>
<EditItemTemplate>
<table cellpadding="0" cellspacing="0">
<tr>
<td>姓名:</td>
<td><asp:TextBox ID="NameTB" Text='<%# Bind("Name") %>' runat="server"></asp:TextBox></td>
</tr>
<tr>
<td>身份证:</td>
<td><asp:TextBox ID="IdentityNumber" Text='<%# Bind("IdentityNumber") %>' runat="server"></asp:TextBox></td>
</tr>
</table>
</EditItemTemplate>
</asp:FormView>
</div>
<asp:objectdatasource ID="objectDatasource1" TypeName="Model.Person" DataObjectTypeName="BLL.PersonManager" SelectMethod="FindPerson" InsertMethod="InsertPerson" UpdateMethod="UpdatePerson" runat="server">
<SelectParameters>
<asp:Parameter Name="IdentityNumber" />
</SelectParameters>
</asp:objectdatasource>
这样就完成了后台业务逻辑层和UI层的绑定。
当新增和修改一个Person,只需要在后台调用Formview1.Insert(true)或者Formview1.Update(true)。即可完成
比2003少很多代码吧
当然如果你在BLL使用NHibernate,这样对一个表单的数据操作就非常方便。有时间再给一个具体的案例讲述NHibernate+Formview。
相关文章推荐
- Asp.Net 2.0中ObjectDataSource+Formview实现添加,修改
- asp.net 在GridView控件上实现修改、添加、删除
- asp.net 实现对xml文件的 读取,添加,删除,修改
- 在MVC3或asp.net中修改KindEditor实现上传图片时添加水印
- 【小技巧】自定义asp.net mvc的WebFormViewEngine修改默认的目录结构
- 【小技巧】自定义asp.net mvc的WebFormViewEngine修改默认的目录结构
- asp.net 实现对xml文件的 读取,添加,删除,修改
- asp.net 实现对xml文件的 读取,添加,删除,修改
- 【小技巧】自定义asp.net mvc的WebFormViewEngine修改默认的目录结构
- 在MVC3或asp.net中修改KindEditor实现上传图片时添加水印
- asp.net 对xml文件的读写,添加,修改,删除操作[转]
- (转)ASP.NET中如何实现FORM认证登录
- asp.net动态加载用户控件,关于后台添加、修改的思考
- [翻译] Scott Mitchell 的ASP.NET 2.0数据操作教程之十:使用 GridView 和DetailView实现的主/从报表
- Scott Mitchell 的ASP.NET 2.0数据教程之十:使用GridView 和DetailView实现的主/从报表
- asp.net教程:UrlRewrite时修改form的action属性问题[转]
- Asp.Net实现FORM认证的一些使用技巧(转)
- asp.net实现生成静态页并添加链接的方法
- ASP.NET中使用MultiView和View以及Menu实现Tablecontrol的功能
- HttpModule 实现 ASP.Net (*.aspx) 中文简繁体的自动转换,不用修改原有的任何代码,直接部署即可!