[ConnectionConsumer(
"Text",
"TextConsumer")]
public
void GetTextTransferInterface(ITextToPass provider)
{
Label1.Text = provider.GetText();
}
如今選擇WebPartManager的Connection mode,咱們就能夠在webpart的菜單上看到「鏈接」選項
當咱們單擊了webpart菜單的「鏈接」的時候,會看到以下圖所示的狀況
單擊「建立提供者鏈接」,你會看到以下所示。而後從DropDownList裏選擇「Consumer」選項。
一旦建立完鏈接,就容許你在「Provider」中輸入文本,以下圖所示
單擊按鈕後「Consumer」的Label控件就會顯示你輸入的值
經過這種方法咱們就能夠在webpart之間傳輸數據。
保存頁面狀態
在運行咱們的項目以前,有一個問題就是如何保存不一樣用戶的不一樣頁面狀態呢?爲了保存用戶對頁的修改,咱們就須要把這些設置保存到數據庫裏。在個人例子中使用到了註冊和登陸控件。
首先你要在你的web.config設置驗證模式爲「Forms」。而後在你的項目中新建一個webform並取名爲Login.aspx。拖拽一個Login控件到頁上,設置它的DestinationPageUrl屬性爲Default.aspx。在你的項目中再新建另外一個webform,取名爲Signup.aspx,拖拽一個CreateUserWizard控件在此頁上。如此用戶就能夠註冊和登陸了。另外你還要確保SqlExpress服務正在運行中。咱們使用asp.net自動在App_Data文件夾內建立的ASPNETDB.mdf爲默認數據庫。這個數據庫已經提供了保存不一樣用戶的不用頁設置的相關表和存儲過程。其在Visual Studio環境中的截圖出示以下
「PersonalizationPerUser」表就用於保存每一個用戶的不用頁設置狀態。它將一個序列化的值保存到PageSettings字段裏。幸運的是咱們不用接觸這個表,由於asp.net 2.0給咱們提供了必需的API
建立數據庫
爲了建立一個數據庫來保存咱們的頁設置狀態,須要運行「aspnet_regsql.exe」工具。這個工具在本地的\Windows\Framework\v2.0.50727文件夾裏。它能夠幫助咱們建立所需的表和存儲過程。該工具嚮導的截屏以下
該工具會建立以下這些表
最後咱們要作的工做就是在web.config裏作一些配置。下面將告訴你如何作,基本上就是要確保啓動Membership和Profile特性。請注意其中的<Clear />標籤,它將移除machine.config中的相應標籤。咱們還要增長一個鏈接字符串以指向咱們的數據庫,我把它命名爲「Database1」
<connectionStrings>
<clear/>
<add name="LocalSqlServer"
connectionString="data source=127.0.0.1;database=Database1;
user id=sa ;password=sa"/>
</connectionStrings>
<system.web>
<compilation debug="true"/>
<authentication mode="Forms" />
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider, System.Web,
Version=2.0.0.0, Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="LocalSqlServer"
applicationName="/CustomConnections" />
</providers>
</membership>
<profile enabled="true" defaultProvider="TableProfileProvider">
<providers>
<clear/>
<add name="TableProfileProvider"
type="Microsoft.Samples.SqlTableProfileProvider"
connectionStringName="LocalSqlServer"
table="asdspnet_Profile"
applicationName="/CustomConnections"/>
</providers>
</profile>
</system.web>
總結webparts爲咱們提供了一個在運行時自定義web站點的簡單方法。它是從SharePoint中提取出來,並引進到asp.net 2.0中的。咱們已經在本文中測試了它的一些基本用法,如使用不一樣類型的webpart和使用自定義數據庫等等。