天天看點

【自然架構】QuickPager分頁控件的單獨的源碼 V2.0.4.2。

  

  QuickPager的源碼分離出來之後由兩個項目組成,一個是QuickPager、另一個是QuickPagerSQL。分頁控件的示範也獨立了出來。

如圖1 。

【自然架構】QuickPager分頁控件的單獨的源碼 V2.0.4.2。

  QuickPager是分頁控件的項目,負責UI的繪制,即上一頁、下一頁、頁号導航等的繪制,還有事件的觸發,控件綁定等功能。

  QuickPagerSQL是生産分頁用的SQL的項目,這個也是獨立的,可以單獨調用這個dll。

QuickPager項目裡引用的DLL:

【自然架構】QuickPager分頁控件的單獨的源碼 V2.0.4.2。

1、 Nature.CommonFunction

  這裡除了常用函數庫外,還定義了一個接口(IDAL),就是資料通路的接口。如果你不想使用我的資料通路函數庫的話,可以通過實作這個接口的方式來換成你自己的資料通路方式。

2、 Nature.MetaData

  這個是中繼資料的實體類的定義和加載管理。因為在中繼資料環境下使用分頁控件,可以從中繼資料裡面提取資訊,給分頁控件設定屬性,是以就需要引用這個dll。如果是獨立使用,那麼可以不用這個dll,隻是這個沒有做成接口的形式,必須顯示引用。

3、 Nature.WebControl.QuickPagerSQL

  分頁算法的dll。如果是手動分頁的話,可以不用這個dll,隻是因為沒有做成接口的形式,是以必須引用進來才可以。

QuickPager分頁控件要運作起來還需要幾個dll。上面說的是在項目裡引用的dll,出來這幾個之外,在項目裡使用分頁控件的時候,還需要兩個dll。

1、 Nature.DataAccessLibrary.dll

  這個是我的資料通路函數庫,如果是自動運作,那麼就必須有這個dll。如果是手動運作,那麼就可以不用這個dll。如果你自己實作了這個接口,那麼也可以不用這個dll。

2、 Nature.WebControl.Interface.dll

  為啥要有這個dll呢?因為Nature.MetaData.dll需要這個dll。這個也是沒有分離幹淨的結果。如果能夠像資料通路那樣設定接口的話,那就可以按需引用這兩個個dll了。隻是對接口的了解和掌握還不夠,現在的水準還設計不好中繼資料的接口。是以暫時隻好這樣了,以後在進行改進。

Web.config 的修改

1、 注冊控件

【自然架構】QuickPager分頁控件的單獨的源碼 V2.0.4.2。
【自然架構】QuickPager分頁控件的單獨的源碼 V2.0.4.2。

代碼

<system.web>

<pages>

   <!--注冊自定義控件-->

   <controls>

    <!--分頁控件-->

    <add assembly="Nature.WebControl.QuickPager" namespace="Nature.WebControls" tagPrefix="Nature"/>

    <!--注冊基礎控件,文本框、下拉清單框等-->

    <add assembly="Nature.WebControl.BaseControl" namespace="Nature.WebControls" tagPrefix="Nature"/>

    <!--注冊中繼資料控件

    <add assembly="Nature.WebControl.MetaControl" namespace="Nature.WebControls" tagPrefix="Nature"/>-->

   </controls>

  </pages>

2、 修改連接配接字元串

如果使用我的資料通路函數庫的話,需要如下設定

【自然架構】QuickPager分頁控件的單獨的源碼 V2.0.4.2。
【自然架構】QuickPager分頁控件的單獨的源碼 V2.0.4.2。

<appSettings>

  <add key="DataBaseType" value="1"/>

  <add key="PagerSQLKey" value="22639340"/>

  <add key="FCKeditor:BasePath" value="~/aspnet_client/FCKeditor/"/>

  <add key="FCKeditor:UserFilesPath" value="/uploads"/>

 </appSettings>

 <connectionStrings>

  <add name="ConnectionString" connectionString="Data Source=.;Initial Catalog=Nature_Demo;persist security info=False;user id=sa;pwd=admin;" providerName="System.Data.SqlClient"/>

 </connectionStrings>

3、 URL重寫的設定

如果要實作URL重寫的話,需要如下設定。(URLRewriter)

【自然架構】QuickPager分頁控件的單獨的源碼 V2.0.4.2。
【自然架構】QuickPager分頁控件的單獨的源碼 V2.0.4.2。

<configuration>

 <!--URL重寫的設定,居然必須是第一個-->

 <configSections>

  <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/>

 </configSections>

……

<!--重寫規則-->

 <RewriterConfig>

  <Rules>

   <!--URL重寫的示範-->

   <RewriterRule>

    <LookFor>~/QuickPager/URL/list(\d+)\.aspx</LookFor>

    <SendTo>~/QuickPager/URL/URLRewriter.aspx?page=$1</SendTo>

   </RewriterRule>

  </Rules>

 </RewriterConfig>

 <system.web>

<!--URL重寫的設定-->

  <httpHandlers>

   <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter"/>

  </httpHandlers>

  先放出來分頁控件的兩個項目的源碼,其他幾個dll的源碼如果想看的話,可以先下載下傳自然架構源碼。我在整理一下,然後再發其他幾個dll的單獨的源碼。主要是調整一下“源碼下載下傳”欄目。需要增加多級分類、相關資源、最新版本的功能。

【QuickPager的類圖】

【自然架構】QuickPager分頁控件的單獨的源碼 V2.0.4.2。

【QuickPagerSQL的類圖】

【自然架構】QuickPager分頁控件的單獨的源碼 V2.0.4.2。