原創|其它|編輯:郝浩|2012-11-08 14:29:23.000|閱讀 1304 次
概述:ASPxGridView網格控件與eXpress Persistent Objects for .NET一同使用可以顯示主從數據。在本示例中,你將學習如何創建一個Customers-Orders 數據感知Web應用程序。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
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、允許結果
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:DevExpress中文網