HOW TO:將 Web 控制項繫結至 EntityDataSource
更新:2007 年 11 月
ListView、FormView、DetailsView 與 GridView Web 伺服器控制項在與 EntityDataSource 控制項搭配使用時,會提供自動讀取、插入、更新以及刪除功能。在這些控制項的設計介面上,您可以輕易地設定 HTML 項目,然後將這些項目以資料繫結的方式連結到 EntityDataSource 控制項。
將 Web 伺服器控制項繫結至 EntityDataSource
ListView、FormView、DetailsView 與 GridView 控制項在設計上非常類似。利用下列步驟,將其中一個 Web 伺服器控制項繫結到 EntityDataSource 控制項:
建立 ASP.NET Web 應用程式。
將專案設定為要使用 Entity Framework、將 Entity Data Model (EDM) 定義到專案中,然後重新建置專案。如需詳細資訊,請參閱 HOW TO:使用 Entity Data Model 精靈 (Entity Framework)。
將控制項拖曳到網頁設計介面。
設定 EntityDataSource。如需詳細資訊,請參閱設定 EntityDataSource 控制項。
將控制項設定為要使用 EntityDataSource 控制項。
注意事項: |
---|
由於處理實體物件巡覽屬性時對 Web 伺服器控制項設計工具造成的限制,您必須手動編輯程式碼後置頁面,移除項目範本巡覽屬性名稱中的括號。 |
下列程序會建立已繫結到 EntityDataSource 控制項的 ListView 控制項。若要完成這個步驟,必須先要設定為 Entity Framework,且定義 AdventureWorks Sales 模型。如需詳細資訊,請參閱 HOW TO:使用 Entity Data Model 精靈 (Entity Framework)。
若要建立已經繫結到 EntityDataSource 的 ListView 控制項:
建置專案與資料模型。
將 ListView 控制項的執行個體拖曳到設計介面。
按一下 ListView 控制項上的 [>] 符號,並選取 [選擇資料來源]。
從下拉式清單中選取 [<New Data Source>]。
出現 [資料來源組態] 精靈後,選取 [實體] 並且指定與資料來源相同的 SalesOrderHeaderDataSource,再按一下 [確定]。
選取 AdventureWorksEntities 同時做為[具名的連接] 與 [DefaultContainerName],然後按一下 [下一步]。
從 [EntitySetName] 下拉式清單方塊中選取 SalesOrderHeader,並且確認已勾選了 [全部選取 (實體值)] 核取方塊,然後勾選自動插入、更新及刪除核取方塊。
按一下 [完成]。
這會建立新的 ListView 控制項執行個體,且已繫結到名為 EntityDataSource1 的 EntityDataSource 控制項執行個體。
在 SalesOrderHeaderDataSource 的 [屬性] 頁面中,找到 [Include] 屬性並加入下列字串:
Address, Address1, Contact
如此,對於查詢所傳回的每一個 SalesOrderHeader 物件而言,可以確保查詢也會傳回相關連的 Address 與 Contact 物件。如需詳細資訊,請參閱 定義查詢路徑 (EntityDataSource)。
按一下 [ListView 工作] 方塊上的 [設定 ListView] 選項。
勾選 [啟用編輯]、[啟用插入]、[啟用刪除] 和 [啟用分頁] 核取方塊。
然後按一下 [確定]。
注意事項: 這時,應用程式應該可以執行了。不過,由於處理實體物件巡覽屬性時對 Web 伺服器控制項設計工具造成的限制,您還必須執行下列步驟。
在 [原始碼] 檢視中開啟 Default.aspx 檔案。
在所有 Address.AddressID、Address1.AddressID 與 Contact.ID 的執行個體前後,找到並刪除方括弧 ([ ])。在 ItemTemplate 與 InsertItemTemplate 上,出現 Eval 和 Bind 函式的所有項目中,都會發現這種類型的字串。
重新建置專案並執行應用程式。