ASP.NET 2.0數(shù)據(jù)教程:添加和配置ObjectDataSource控件
首先,打開(kāi)BasicReporting文件夾中的SimpleDisplay.aspx頁(yè)面,切換到設(shè)計(jì)視圖,從工具箱拖拽一個(gè)ObjectDataSource控件到頁(yè)面。它在設(shè)計(jì)界面顯示為一個(gè)灰色的方塊,這是因?yàn)樗划a(chǎn)生任何的聲明標(biāo)記;它僅僅是通過(guò)調(diào)用制定的對(duì)象的方法存取數(shù)據(jù)。通過(guò)ObjectDataSource返回的數(shù)據(jù)可以展現(xiàn)到Data Web 服務(wù)器控件,例如GridView、DetailsView、FormView等等。
注意:作為另一種選擇,你也可以先在頁(yè)面上添加一個(gè)Data Web 服務(wù)器控件,然后“顯示智能標(biāo)記”,從“選擇數(shù)據(jù)源”下拉框中選擇〈新建數(shù)據(jù)源…〉進(jìn)入數(shù)據(jù)源配置向?qū)?lái)添加一個(gè)ObjectDataSource。
為了指定ObjectDataSource的底層對(duì)象并且把該對(duì)象的方法映射到ObjectDataSource的的方法,可以點(diǎn)擊ObjectDataSource的智能標(biāo)記中的“配置數(shù)據(jù)源”鏈接進(jìn)入數(shù)據(jù)源配置向?qū)А?/P>
圖3: 點(diǎn)擊智能標(biāo)記中的“配置數(shù)據(jù)源”鏈接
這將進(jìn)入數(shù)據(jù)源配置向?qū)АJ紫龋覀冃枰oObjectDataSource指定一個(gè)業(yè)務(wù)對(duì)象。如果勾選上“只顯示數(shù)據(jù)組件”,那么下拉框中就僅僅顯示出那些以[DataObject]特征修飾過(guò)的對(duì)象。當(dāng)前這個(gè)列表中應(yīng)該包含了類(lèi)型化數(shù)據(jù)集中表適配器對(duì)象(TableAdapters)和前文中我們已經(jīng)創(chuàng)建的業(yè)務(wù)對(duì)象。如果你忘了給業(yè)務(wù)邏輯類(lèi)增加[DataObject]特征,那么當(dāng)前列表中講看不到它們。如果是那樣的話,你也可以不勾選“只顯示數(shù)據(jù)組件”從而看見(jiàn)所有對(duì)象,這就可以把業(yè)務(wù)對(duì)象包含進(jìn)來(lái)(連同類(lèi)型化數(shù)據(jù)集中的其他類(lèi) –DataTables、 DataRows等等)
在***屏中從下拉列表中選擇業(yè)務(wù)對(duì)象ProductsBLL ,然后點(diǎn)擊“下一步”。
圖4: 指定ObjectDataSource 控件使用的業(yè)務(wù)對(duì)象
在下一屏中向?qū)е心憧梢赃x擇ObjectDataSource要調(diào)用的方法。下拉列表中方法是從上一屏中選定的業(yè)務(wù)對(duì)象獲得的。這里我們可以看到GetProductsByProductID,GetProducts,GetProductsByCategoryID和GetProductsBySupplierID這幾個(gè)方法。從下拉列表中選擇方法GetProducts然后點(diǎn)擊“完成”(如果你已經(jīng)像前文展示那樣給ProductBLL的方法增加了[DataObjectMethod]特征,那么該項(xiàng)會(huì)被默認(rèn)選中)。
圖5: 從“Select”Tab頁(yè)選擇返回?cái)?shù)據(jù)的方法
手工配置ObjectDataSource
ObjectDataSource配置向?qū)峁┝艘粋€(gè)快捷的方式來(lái)指定它使用的對(duì)象并關(guān)聯(lián)需要調(diào)用的方法。不過(guò),你也可以通過(guò)它的屬性來(lái)配置ObjectDataSource,不管是通過(guò)屬性窗口還是直接在聲明標(biāo)記里。只需簡(jiǎn)單地將TypeName屬性設(shè)置為使用的業(yè)務(wù)對(duì)象的名稱(chēng),將SelectMethod屬性設(shè)置為提取數(shù)據(jù)時(shí)需要調(diào)用的方法名稱(chēng)。
- < asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
- SelectMethod="GetProducts"
- TypeName="ProductsBLL">
- < /asp:ObjectDataSource>
盡管你可能更喜歡數(shù)據(jù)源配置向?qū)В袝r(shí)你還是需要手工配置ObjectDataSource,因?yàn)榕渲孟驅(qū)е涣谐鲆呀?jīng)開(kāi)發(fā)的類(lèi)。如果你希望把ObjectDataSource綁定到.NET Framework里的類(lèi)–例如 Membership class來(lái)存取登陸用戶(hù)信息,或者Directory class 來(lái)管理文件系統(tǒng)信息,那么你就需要手工設(shè)置ObjectDataSource的屬性。
【編輯推薦】
- ASP.NET 2.0數(shù)據(jù)教程:插入,更新和刪除數(shù)據(jù)
- ASP.NET 2.0數(shù)據(jù)教程:給數(shù)據(jù)訪問(wèn)層添加參數(shù)化的方法
- ASP.NET 2.0數(shù)據(jù)教程:創(chuàng)建數(shù)據(jù)訪問(wèn)層
- ASP.NET 2.0數(shù)據(jù)教程:創(chuàng)建一個(gè)Web項(xiàng)目,配置數(shù)據(jù)庫(kù)連接
- ASP.NET 2.0數(shù)據(jù)教程:給DataRow添加字段級(jí)驗(yàn)證