資源描述:
《數(shù)據(jù)綁定技術(shù)數(shù)據(jù)綁定技術(shù)原理課件》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、數(shù)據(jù)綁定技術(shù)原理ASP.NET數(shù)據(jù)綁定技術(shù)之主要內(nèi)容數(shù)據(jù)綁定原理GridView基礎(chǔ)知識GridView應(yīng)用實例數(shù)據(jù)綁定控件的組合使用21數(shù)據(jù)綁定原理只有知其所以然才能知其然引例:直觀了解數(shù)據(jù)綁定現(xiàn)場編程展示(參考示例:UseDataBind)4數(shù)據(jù)綁定的層次結(jié)構(gòu)數(shù)據(jù)庫ADO.NET數(shù)據(jù)綁定控件數(shù)據(jù)源控件提供顯示和編輯數(shù)據(jù)的可視化界面IDataSourceDataSourceView提供對數(shù)據(jù)的訪問接口:增、刪、改、查與數(shù)據(jù)庫交互,完成信息的增、刪、改、查工作。信息的存放地調(diào)用存取5常用的數(shù)據(jù)綁定控件控件名稱說明GridView以表格的方式顯示和編輯數(shù)據(jù)
2、,DetailsView一次顯示、編輯、插入或刪除一條記錄。默認(rèn)情況下,DetailsView控件將記錄的每個字段顯示在它自己的一行內(nèi)。FormViewFormView控件與DetailsView控件相似,一次也只能顯示或編輯一條記錄。FormView需要給其設(shè)定一個模板。DataList控件可以用某種用戶指定的格式來顯示數(shù)據(jù)(比如分列顯示),這種格式由模板和樣式進(jìn)行定義。RepeaterRepeater控件沒有包含內(nèi)置的布局或樣式,需要由Web開發(fā)者指定所有的用于顯示數(shù)據(jù)的內(nèi)部控件和顯示樣式ListViewASP.NET3.5新增,以嵌套容器模板和占位
3、符的方式提供靈活的數(shù)據(jù)顯示模式6常用的數(shù)據(jù)源控件SqlDataSource可以連接到ADO.NET支持的任何SQL數(shù)據(jù)庫。AccessDataSource連接到使用MicrosoftOffice創(chuàng)建的Access數(shù)據(jù)庫。ObjectDataSource連接到應(yīng)用程序的Bin或App_Code目錄中的中間層業(yè)務(wù)對象或數(shù)據(jù)集。XmlDataSource連接到XML文件。SitemapDataSource連接到此應(yīng)用程序的站點導(dǎo)航樹(要求應(yīng)用程序根目錄處有一個有效的站點地圖文件,默認(rèn)的文件名為“Web.sitemap”),站點地圖文件其實也是一個XML文件。L
4、INQDataSource.NET3.0新增,可以訪問各種類型的數(shù)據(jù),包括數(shù)據(jù)庫和XML文件。與C#/VB.NET等.NET語言直接集成。7多種可綁定的數(shù)據(jù)對象除了綁定到數(shù)據(jù)源這種具有很強(qiáng)功能的對象之外,數(shù)據(jù)綁定控件還可以綁定到最小實現(xiàn)了IEnumerable接口的集合對象(比如數(shù)組/HashTable/List)。另外,通過使用數(shù)據(jù)綁定表達(dá)式,可以將一些數(shù)據(jù)綁定控件直接與某個函數(shù)或?qū)傩赃M(jìn)行綁定。8數(shù)據(jù)綁定的三種實現(xiàn)方式:將數(shù)據(jù)綁定控件的DataSourceID設(shè)定為數(shù)據(jù)源控件,數(shù)據(jù)綁定控件即可充分利用數(shù)據(jù)源控件的功能實現(xiàn)對數(shù)據(jù)的“增刪改查”。這稱
5、為“自動數(shù)據(jù)綁定”。也可以不使用DataSourceID,而是直接將數(shù)據(jù)源賦值給數(shù)據(jù)綁定控件的DataSource屬性,然后再調(diào)用數(shù)據(jù)綁定控件的DataBind()方法實現(xiàn)“手工數(shù)據(jù)綁定”?;蛘咧苯釉陧撁嬷蟹胖媒壎ū磉_(dá)式,然后在Page_Load中調(diào)用頁面類的DataBind()方法實現(xiàn)數(shù)據(jù)綁定。9數(shù)據(jù)綁定表達(dá)式第一步:設(shè)定數(shù)據(jù)表達(dá)式<%#數(shù)據(jù)綁定表達(dá)式%>第二步:執(zhí)行Page類中的Bind()方法。Demo:UseDataBind(DataBindingExpression.aspx)重要編程提示:直接在頁面中嵌入C#代碼的方法:<%=C#代碼%>無需
6、調(diào)用Page.Bind()方法,上述代碼總是執(zhí)行。10理解“數(shù)據(jù)綁定模板”由于要顯示的數(shù)據(jù)通常包含多條結(jié)構(gòu)類似的記錄,因此,經(jīng)常使用“模板(Template)”來指定單條記錄的顯示格式,然后,數(shù)據(jù)綁定控件自動將這一定義好的模板應(yīng)用于所有要顯示的記錄??梢葬槍Σ煌膱鼍岸x不同的模板,比如為瀏覽狀態(tài)顯示一個只讀的模板(通常用Label來表達(dá)信息),然后為編輯狀態(tài)顯示另一個模板(通常用TextBox來向用戶提供修改信息的手段)。大多數(shù)數(shù)據(jù)綁定控件都提供了相應(yīng)的方法在不同的狀態(tài)間切換(比如從瀏覽切換到編輯狀態(tài)),并會自動加載相應(yīng)的模板,與此同時,還會激發(fā)相應(yīng)的
7、事件。11在數(shù)據(jù)綁定模板中綁定數(shù)據(jù)(1)當(dāng)一個ASP.NET控件位于一個數(shù)據(jù)綁定模板中時,可以使用Eval()方法將其的某個屬性與數(shù)據(jù)源中當(dāng)前數(shù)據(jù)對象的某個屬性相綁定。ClientID:'/>Eval方法提供了一個單向的只讀的數(shù)據(jù)值。這就是說,數(shù)據(jù)是從“數(shù)據(jù)源”對象單向傳送給模板中的控件,沒有辦法修改數(shù)據(jù)源對象中的數(shù)據(jù)。12在數(shù)據(jù)綁定模板中綁定數(shù)據(jù)(2)當(dāng)需要修
8、改數(shù)據(jù)源中的數(shù)據(jù)時,通常采用Bind()方法實現(xiàn)這一功能: