★33°空間‰


                                 ----★七彩服飾  【最潮拜☆日單精品】【Esprit】【Hotwind】滿150包郵-女裝-流行女裝    www.7color.hb.cn

                                 ----智力比知識重要,素質比智力重要,覺悟比素質更重要
          posts - 110,comments - 35,trackbacks - 0

          Web Parts 是Microsoft Visual Studio 2005 中的ASP.NET 2.0的新特性之一,Web Parts是構建類門戶風格(Portal-Style)的應用的框架,它繼承自SharePoint Portal Server的成熟模式,可以用最小的代碼創建更豐富的表現,如用戶可以使用拖拽的方式創建頁面布局等。與它有關的控件都在System.Web.UI.WebControls.WebParts這個命名空間里。

          1. WebPartManager控件

            WebPartManager是Web Parts的總控中心。它可以管理Web Parts及區域的列表;管理頁面狀態,當頁面狀態改變時觸發事件;協助Web Parts間的通訊;管理個性化等。
            每個頁面僅有一個WebPartsManager實例,沒有UI。

            1. <asp:WebPartManager ID="WebPartManager1" runat="server" />

            ?

            WebPartManger.DisplayMode
            設置或者獲取頁面的顯示模式
            BrowserDisplayMode: “正常的”顯示模式,無法編輯(默認)
            DesignDisplayMode: 允許拖拽式布局模式
            EditDisplayMode: 允許編輯Web Part的外觀及行為
            CatalogDisplayMode: 允許將Web Part添加到另外的頁面上
            ConnectDisplayMode: 允許Web Parts之間進行通訊

            DisplayMode事件
            當DisplayMode發生改變時,會觸發WebPartManager.DisplayModeChanging事件,其參數WebPartDisplayModeCancelEventArgs獲得新的顯示模式,并且允許控制者取消這種改變。
            當DispalyMode已經發生改變,會觸發WebPartManager.DisplayModeChanged事件,其參數WebPartDispalyModeEventArgs得到原來的顯示模式。

          2. WebPartZone控件

            ?

            WebPartZone是在Web Parts頁面中定義的區域,它定義每個區域中的Web Part的默認顯示樣式及布局。

            1. <asp:WebPartZone ID="WebPartZone1" runat="server">
            2.  <ZoneTemplate>
            3.  </ZoneTemplate>
            4. </asp:WebPartZone>

            ?

            Web Part Chrome則是Web Part的標題欄及邊框,它是通過WebPartZone來定義其外觀和操作的。

            在WebPartZone中可以定義各種控件如:Web controls, user controls, custom controls等等。未實現IWebPart接口的控件將封裝進GenericWebParts,而且需要增加以下的屬性,如Title, Description等。

          3. CatalogZone控件

            ?

            PageCatalogPart: 顯示頁面上已經刪除的Web Part的列表
            DeclarativeCatalogPart: 顯示聲明在中的Web Part列表
            ImportCatalogPart: 允許.WebPart文件中導入的Web Part

            1. <asp:CatalogZone ID="CatalogZone1" runat="server">
            2.  <ZoneTemplate>
            3.   <asp:PageCatalogPart ID="PageCatalogPart1" runat="server" />
            4.   <asp:DeclarativeCatalogPart ID="DeclarativeCatalogPart1" runat="server">
            5.    <WebPartsTemplate>
            6.     <asp:Button ID="Button1" runat="server" Text="Button" />
            7.    </WebPartsTemplate>
            8.   </asp:DeclarativeCatalogPart>
            9.  </ZoneTemplate>
            10. </asp:CatalogZone>

            ?

            CatalogZone控件允許Web Part可以交互式的進行添加,可以包含一個或多個CatalogPart控件。
          4. EditorZone控件

            ?

            AppearanceEditorPart: 提供修改標題即其它界面相關屬性的
            UIBehaviorEditorPart: 提供修改行為屬性的
            UI LayoutEditorPart: 提供修改Web Part的顯示狀態,區域及區域索引的
            UIPropertyGridEditorPart: 提供修改定制屬性的UI

            1. <asp:EditorZone ID="EditorZone1" runat="server">
            2.  <ZoneTemplate>
            3.   <asp:AppearanceEditorPart ID="AppearanceEditorPart1" runat="server" />
            4.   <asp:BehaviorEditorPart ID="BehaviorEditorPart1" runat="server" />
            5.   <asp:LayoutEditorPart ID="LayoutEditorPart1" runat="server" />
            6.   <asp:PropertyGridEditorPart ID="PropertyGridEditorPart1" runat="server" />
            7.  </ZoneTemplate>
            8. <asp:EditorZone>

            ?

            PropertyGridEditorPart允許修改自定義屬性的UI,顯示標記為[WebBrowsable]的屬性。

            1. int myVar;
            2. [WebBrowsable]
            3. publicint MyProperty
            4. {
            5.  get {return myVar; }
            6.  set { myVar = value; }
            7. }

            ?

            EditZone控件允許交互式的對Web Parts進行更改,可以包含一個或多個EditPart控件。
          5. Web Part通訊

            ?

            通訊的提供者需要實現方法返回接口,方法特性[ConnectionProvider]
            通訊的訂閱者需要實現方法接收接口,方法特性[ConnectionConsumer]

            工作方式
            1.WebPartManager調用[ConnectionProvider]方法
            2.WebPartManager從返回參數中獲得接口
            3.WebPartManager調用[ConnectionConsumer]方法將接口傳遞給訂閱者
            4.訂閱者用給定的接口也發布者通訊

            靜態通訊方式
            在設計時就把WebPart之間相互通訊的關系在WebPartManager的StaticConnections元素中定義好了,最終用戶無法修改。

            1. <asp:WebPartManager ID="WebPartManager1" runat="server">
            2.  <StaticConnections>
            3.   <asp:WebPartConnection ID="myConnection" ConsumerID="MyConsumer" ProviderID="MyProvider" ConsumerConnectionPointID="MyConsumerPoint" ProviderConnectionPointID="MyProviderPoint"/>
            4.  </StaticConnections>
            5. </asp:WebPartManager>

            ?

            動態通訊方式
            用ConnectionZone控件提供供Web Part進行通訊的UI。最終用戶可以在運行時自定義綁定WebPart之間的通訊。

            1. <asp:ConnectionsZone ID="ConnectionsZone1" runat="server" />

            ?

            Web Part可以類似于事件的方式相互通訊,提供者發布接口,訂閱者通過接口獲得數據。而通訊之間的聯系是由WebPartManger來管理的,它從提供者獲得接口,向訂閱者發布接口。通訊可以是靜態的,在設計時就定義好,也可以是動態的,即在運行時由ConnectionsZone提供后期綁定的UI。
          6. Web Parts個性化

            使用Web Part個性化服務可以自動保存相關的Web Part的屬性(布局,外觀等等),還可以自動保存標記為PersonalizableAttribute的定制屬性。

            在PersonalizationAdministration類里還提供了一系列有關個性化服務的API, 來供我們調用。

            還可以為每個用戶提供各自的個性化服務,只需要把屬性聲明為[Personalizable]就可以了。

            也可以將屬性聲明為[Personalizable (PersonalizationScope.Shared)],這樣的話,這個屬性就可以被每個用戶共享。

            Web Parts個性化服務是基于Provider模式的。Beta1的時候提供了兩個Provider:
            AccessPersonalizationProvider(Access)
            AqlPersonalizationProvider(SQL Server)
            在Beta2中AccseePersonalizationProvider已經被移除了。
            也可以使用自定義Provider增加對其它數據源的支持。

            如使用SQL Server的Provider需要在Web.config文件中加入聲明:

            1. <webParts>
            2.  
            3. <personalization defaultProvider="AspNetSqlPersonalizationProvider"/>
            4. </webParts>

            ?

          7. 定制Web Parts

            任何控件均可以作為Web Parts來運行,但是最好是采用繼承自WebPart的控件。這樣可以得到更好的應用,如可以控制控件標題及其它與UI相關的屬性,控件的AllowClose, AllowZoneChange, AllowMinimize和其它行為屬性,可以應用于基于角色的安全特性,也可以增加一些自定義的操作,包括導出Web Part等等。

            增加自定義操作:

            1. public class MyWebPart : WebPart
            2. {
            3.  publicoverride WebPartVerbCollection Verbs
            4.  {
            5.   get
            6.   {
            7.    EnsureChildControls();
            8.    WebPartVerb verb = new WebPartVerb(new WebPartEventHandler(OnClearResults));
            9.    verb.Text = "Clear Results";
            10.    WebPartVerb[] verbs = new WebPartVerb[]{ verb };
            11.    returnnew WebPartVerbCollection(base.Verbs, verbs);
            12.   }
            13.  }
            14. ?
            15.  void OnClearResult(object sender, WebPartEventArgs args){...}
            16. }

            ?

          8. 導出Web Part

            WebPart.ExprotMode屬性

            ?

            WebPartExportMode.None (默認)
            WebPartExportMode.All 允許導出所有數據
            WebPartExportMode.NonSensitiveData 允許導出非敏感數據

            可以在構造函數中對Web Part的導出屬性進行定義

            1. public MyWebPart()
            2. {
            3.  this.ExportMode = WebPartExportMode.All;
            4. }

            ?

            也可以選擇某些屬性被導出,在屬性聲明中定義即可。

          posted on 2007-02-06 12:02 圣域飛俠 閱讀(196) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 昭觉县| 措美县| 黔东| 五寨县| 儋州市| 三江| 江阴市| 汪清县| 兴化市| 定南县| 吉安县| 普宁市| 万盛区| 沭阳县| 天峻县| 石门县| 泰州市| 安西县| 宣恩县| 赤峰市| 苍溪县| 古交市| 德阳市| 灵丘县| 嵊泗县| 晋宁县| 元江| 南通市| 巢湖市| 若尔盖县| 哈巴河县| 泽州县| 锡林浩特市| 泾阳县| 阿克苏市| 青海省| 凤凰县| 彭泽县| 黄山市| 外汇| 高雄市|