ASPxGridView控件常用示例四:显示主从数据
作者:zhuhm 来源:本站原创 浏览:Loading...次 发布时间:2012-11-08 评论:0条
ASPxGridView网格控件与eXpress Persistent Objects for .NET一同使用可以显示主从数据。在本示例中,你将学习如何创建一个Customers-Orders 数据感知Web应用程序。
1、定义持久化类(Persistent Classes)
C#
	
using DevExpress.Xpo;
public class Customer : XPObject {
public Customer(Session session) : base(session) { }
string fCustomerName;
public string CustomerName {
get { return fCustomerName; }
set { SetPropertyValue<string>("CustomerName", ref fCustomerName, value); }
}
[Association("Customer-Orders", typeof(Order)), Aggregated]
public XPCollection Orders { get { return GetCollection("Orders"); } }
}
public class Order : XPObject {
public Order(Session session) : base(session) { }
string fProductName;
public string ProductName {
get { return fProductName; }
set { SetPropertyValue<string>("ProductName", ref fProductName, value); }
}
DateTime fOrderDate;
public DateTime OrderDate {
get { return fOrderDate; }
set { SetPropertyValue<DateTime>("OrderDate", ref fOrderDate, value); }
}
[Association("Customer-Orders")]
public Customer Customer;
}
	
2、连接到数据库服务器
创建一个IDataLayer对象,以实现XPO与数据库服务器链接。创建数据层的代码必须被放入 Global.asax模块的Application_Start 事件处理程序中。
C#
void Application_Start(object sender, EventArgs e) {
string conn = DevExpress.Xpo.DB.AccessConnectionProvider.GetConnectionString(
Server.MapPath("~\\App_Data\\Customer.mdb"));
DevExpress.Xpo.Metadata.XPDictionary dict = new DevExpress.Xpo.Metadata.ReflectionDictionary();
// Initialize the XPO dictionary. 
dict.GetDataStoreSchema(typeof(Customer).Assembly);
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);
DevExpress.Xpo.XpoDefault.Session = nul
	
3、从数据库中检索数据
使用 XpoDataSource控件可从数据库中检索数据。
Master: Customers
	
 
将TypeName属性设置为Customer。
Detail: Orders
	
 
将 TypeName属性设置为 Order.
使用Criteria属性来指定过滤条件,并将其属性设置为'[Customer.Oid] = ?'。
调用 Parameter Collection Editor,添加标准参数。该参数在运行时从 "Oid" Session字段中获取值。
	
 
通过处理页面的Init事件,可将XpoDataSource控件绑定到数据库。
C#
	
using DevExpress.Xpo;
Session session;
protected void Page_Init(object sender, EventArgs e) {
session = new Session();
dsCustomers.Session = session;
dsOrders.Session = session;
}
	
4、创建主从ASPxGridViews
创建两个ASPxGridView控件。将第一个网格控件 (master) 绑定到dsCustomers。将第二个网格(detail)绑定到 dsOrders。在两个网格中选择 Enable editing和Enabledeleting选项。
	
 
5、设置主从关系
点击Edit Templates 任务,调用主(master) ASPxGridView的模板设计器。选择 DetailRow模板,将detail grid网格拖动到Detail Row模板中。
C#
	
using DevExpress.Web.ASPxGridView;
protected void detailGrid_BeforePerformDataSelect(object sender, EventArgs e) {
Session["Oid"] = (sender as ASPxGridView).GetMasterRowKeyValue();
}
	
接下来,选择 End Template Editing 任务,启用主网格的 ASPxGridViewDetailSettings.ShowDetailRow选项。
6、运行结果
	 
 
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [http://www.devexpresscn.com/]
本文地址:http://www.devexpresscn.com/Resources/CodeExamples-312.html
关键字: 网格控件 ASPxGridView
评论列表
暂无评论
请谈谈你的看法 请使用IE或者Firefox浏览器,暂不支持Chrome!

慧都控件网为DevExpress界面控件的中国地区唯一正式授权经销商,正版控件销售公司,授权代理商,经销商及合作伙伴。
电话:400-700-1020
              023-66090381
邮箱:sales@evget.com
 
    


