在asp.net2.0中使用ObjectDataSource+Formview可以很容易实现对对象的添加和修改。我们都知道在Asp。 net2。0中加入ObjectDataSource可以很方便来绑定业务逻辑层的代码,把UI层的数据通过Formview绑定传入到数据逻辑层中。

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)
{ }
}
}
<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>
我们来看看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.NET2.0中利用ObjectDataSource和Formview组件实现对对象的添加和修改功能。通过示例展示了如何在业务逻辑层定义Person类及其管理器,并将其与Web界面绑定。

1584

被折叠的 条评论
为什么被折叠?



