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的使用。
|
请发表评论