3.5.3 绑定到自定义实体对象
要绑定到自定义实体对象,就需要用到ObjectDataSource。如:
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly= "Samples.AspNet.CS" %> <%@ Page language="c#" %> <html> <head> <title>ObjectDataSource - C# Example</title> </head> <body> <form id="Form1" method="post" runat="server"> <asp:gridview id="GridView1" runat="server" datasourceid="ObjectDataSource1" /> <asp:objectdatasource id="ObjectDataSource1" runat="server" selectmethod="GetAllEmployees" typename="Samples.AspNet.CS.EmployeeLogic" /> </form> </body> </html> |
下面我们结合上面章节提到的DB4O对象数据库和ObjectDataSource来做一个完整的例子。
01 首先用Visual Studio创建一个Web Site,默认使用WebSite1的名称。
02 在WebSite1中添加DB4O的引用,即在Bin文件夹中加入DB4Objects.DB4O.dll程序集。
03 在App_Code文件夹中添加一个Author.cs文件,在这个文件中定义一个Author的实体类,代码如下:
public class Author { public Author() { // // TODO: Add constructor logic here // } private string _ID; public string ID { get { return _ID; } set { _ID = value; } } private string _Name; public string Name { get { return _Name; } set { _Name = value; } } private string _Phone; public string Phone { get { return _Phone; } set { _Phone = value; } } } |
04 在App_Code文件夹中添加一个AuthorManager.cs文件,在这个文件添加一个AuthorManager类,通过DB4O来实现数据的访问逻辑:
public class AuthorManager { private static IObjectContainer db; private String filePath = HttpContext.Current.Server.MapPath ("~/App_Data/Authors.yap"); public AuthorManager() { if (db==null) db= DB4OFactory.OpenFile(filePath); } public IList<Author> GetAuthors() { IList<Author> lst=db.Query<Author>(); if (lst == null || lst.Count == 0) { Author obj = new Author(); obj.ID = "0"; obj.Name = "abc"; obj.Phone = "123"; db.Set(obj); db.Commit(); lst = db.Query<Author>(); } return lst; } public void InsertAuthor(string ID, string Name, string Phone) { Author obj = new Author(); obj.ID = ID; obj.Name = Name; obj.Phone = Phone; db.Set(obj); db.Commit(); } } |
05 在Default.aspx中添加一个ObjectDataSource来引用AuthorManager,并定义Select要用的方法为GetAuthors,Insert要用的方法为InsertAuthor,添加步骤如图3-9~图3-11所示。
|
| 图3-9 |
|
| 图3-10 |
|
| 图3-11 |
06 在Default.aspx中添加一个GridView控件用于显示数据,添加一个DetailsView控件用于添加数据,其中设置DetailsView的AutoGenerateInsertButton属性为true让其显示出添加数据的按钮,效果图如图3-12所示。
|
| 图3-12 |
07 运行程序,添加一些示例数据。