ASP.NET Futures CTP中的動態資料控制項(Dynamic Data Control)簡直成了ASP.NET版本的Ruby on Rails——無需配置、無須代碼、無需任何幹預——只要一個控制項,一個完整的資料驅動程式就搞定了。動態資料控制項將自動搜尋項目中的資料庫,自動選擇與分頁檔名相同的資料表,自動提供列表顯示、詳細內容顯示、過濾、分頁、排序、添加、刪除、編輯、修改以及RSS等功能——沒錯,所有都是自動的——只要一個控制項,甚至都不用任何設定!非常有意思的同時也極其有用!
本文就將拋磚引玉地對動態資料控制項進行簡要的介紹。
ASP.NET Futures 下載、安裝以及建立新Web網站
ASP.NET Futures 可以在此下載:http://www.asp.net/downloads/futures/。有50M大小
ASP.NET Futures 的參考文檔:http://quickstarts.asp.net/Futures/default.aspx
ASP.NET Futures 的官方論壇:http://forums.asp.net/1127/ShowForum.aspx
下載完成之後,安裝這個msi,過程非常簡單。如果RP不錯的話,應該不會出現什麼問題。
然後開啟VS 2005,建立一個Web 網站,選擇ASP.NET Futures Web Site:
即可使用預設的模板建立一個ASP.NET Futures Web網站。開啟它的web.config檔案,仔細分析學習一下吧,添加了不少東西。
不過在VS的Toolbox中,你會找到更多的好玩意:
看到了這麼多花花綠綠的新控制項表徵圖,是不是心裡有些痒痒呢?不過這篇文章當然不能介紹所有的內容,只是從動態資料控制項部分開始。如果有時間,我會在後續文章中一一道來。
使用NorthWind作為樣本資料庫
NorthWind資料庫風采不減當年,為了示範動態資料控制項的強大功能,這裡我們也使用了NorthWind資料庫。
順便介紹一下在VS 2005中內建的SQL Express中使用NorthWind資料庫的方法,方便沒裝資料庫的朋友:
首先下載並安裝原始的NorthWind資料庫:http://www.microsoft.com/downloads/details.aspx?familyid=06616212-0356-46a0-8da2-eebc53a68034&displaylang=en
然後在命令列視窗中導航至"c:\Sql Server 2000 Sample Databases"
輸入如下命令即可(要將[Computer Name]替換為你的電腦名稱):
osql -E -S [Computer Name]\SqlExpress -i instnwnd.sql
第一次可能會遇到逾時失敗(RPWT,呵呵),不過再試一次就會好了。
實現樣本程式頁面
我們來將NorthWind資料庫中的Employees表中的資料顯示出來。
首先在web.config中添加這個SQL Express版本NorthWind資料庫的連接字串(想串連別的資料庫的話,也可以根據需要修改,不過這已經不屬於本文的討論範圍了),這樣動態資料控制項才能知道要顯示哪個資料庫中的資料:
<connectionStrings>
<add name="NorthwindConnectionString1"
connectionString="Data Source=DFLYING-LAPTOP;Initial Catalog=Northwind;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
然後建立一個名為Employees.aspx的頁面,一定要使用這個名稱,這樣動態資料控制項才能知道要顯示資料庫中的哪張表(Employees表)!並在Employees.aspx中添加一個DynamicAutoData控制項:
<asp:DynamicAutoData ID="DynamicAutoData1" runat="server" />
DynamicAutoData控制項是眾多動態資料控制項中的一種,也是功能最為全面的一種(非常適合作樣本程式吸引眼球,嘿嘿)。
然後…………
…………
…………
…………
…………
…………
…………
…………
…………
…………
…………
…………
…………
沒了!真的沒了!不信的話看看Employees.aspx的完整原始碼:
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Northwind Employees</title>
<style type="text/css">
* { font: 11px tahoma; }
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DynamicAutoData ID="DynamicAutoData1" runat="server" />
</div>
</form>
</body>
</html>
一行代碼所帶來的驚豔效果
這個一行的DynamicAutoData控制項能搞出什麼名堂呢?F5運行一下,真是不看不知道啊……(抱歉各位,圖有點大,實在是這個控制項功能太多了……我不是故意的)
仔細分一下都有什麼功能:
GridView列表
RSS:
過濾:
編輯:
(還有下拉式清單方塊可用):
排序:
查看條目之間的關係(員工的老闆以及員工的下屬):
員工的詳細資料(帥哥一個):
添加新員工:
這樣的功能,只是一句代碼實現的……RoR的感覺油然而生阿!
原始碼下載
本執行個體程式的原始碼在這裡下載:http://files.cnblogs.com/dflying/DynamicAutoData.zip