XPO学习(6)----实现一个简单的留言薄(ASP.NET)
2011-10-20 10:28 OOA 阅读(751) 评论(0) 编辑 收藏 举报l留言簿是网站上很常见的一个功能。一个访问者可以通过这个留言簿留下姓名,EMAIL,消息标题及内容。内容显示用ASPxNewscontrol控件。类似界面如下:
步骤:
1.界面设计
2.定义一个持久类
3.XPO与数据库建立连接
4.把Comment 绑定到XpoDataSource 控件
5.创建XPO session
6.绑定数据源到ASPxNewsControl
7.实现保存内容
具体实现:
1.界面设计:
先拖拽 一个XpoDataSource控件用于存放数据和从数据库中查询数据。在拖拽一个ASPxNewsControl用于显示数据,在拖拽一个ASPxRoundPanel来做个编辑留言的区域,再分别拖拽三个ASPxLabel和ASPxTestBox和ASPxMemo 和一个ASPxbutton,并修改下ID属性。
2.定义持久类:
先创建一个名为:Comment的持久对象的类;代码如下:
public class Comment : XPObject
{
public DateTime Date;
public string Text;
public string Title;
public string Email;
public Comment()
: base()
{
}
public Comment(Session session)
: base(session)
{
// This constructor is used when an object is loaded from a persistent storage.
// Do not place any code here.
}
public Comment(Session session, DateTime date, string text, string title, string email, string visitorName)
: base(session)
{
this.Date = date;
this.Text = text + "[" + visitorName + "," + email + "]";
this.Title = title;
}
public override void AfterConstruction()
{
base.AfterConstruction();
// Place here your initialization code.
}
}
3.XPO与数据库建立连接。
在Application_Start事件里写入一下代码:
protected void Application_Start(object sender, EventArgs e)
{
string conn = DevExpress.Xpo.DB.AccessConnectionProvider.GetConnectionString(Server.MapPath("~\\App_Data\\Comments.mdb"));
DevExpress.Xpo.Metadata.XPDictionary dict = new DevExpress.Xpo.Metadata.ReflectionDictionary();
dict.GetDataStoreSchema(typeof(Comment).Assembly);
DevExpress.Xpo.XpoDefault.Session = null;
DevExpress.Xpo.DB.IDataStore store = DevExpress.Xpo.XpoDefault.GetConnectionProvider(conn, DevExpress.Xpo.DB.AutoCreateOption.SchemaAlreadyExists);
DevExpress.Xpo.XpoDefault.DataLayer = new DevExpress.Xpo.ThreadSafeDataLayer(dict, store);
}
4.把Comment绑定到XPODataSource控件上
5.创建Session
在PageInit事件里填写如下代码:
protected void Page_Init(object sender, EventArgs e)
{
session1 = new Session();
XpoDataSource1.Session = session1;
}
6.实现保存
在buttonclick事件里填写如下代码:
Comment newComment = new Comment(session1, DateTime.Today, ASPxMmContent.Text, ASPxTbTitle.Text, ASPxTbEmail.Text, ASPxTbName.Text);
newComment.Save();
ASPxNewsControl1.DataBind();
OK,启动调试:
界面出来了,
总结:
这一节我们实现了一个简单的留言板的功能。巩固了ASP.NET应用程序使用XPO操作数据库的一般步骤。练习了ASPxNewsControl和ASPxRoundPanel的使用。