1. 程式人生 > >AspNetpager和UrlRewritingnet多引數分頁(帶儲存過程)

AspNetpager和UrlRewritingnet多引數分頁(帶儲存過程)

AspNetPager7.2和urlrewritingnet用法(帶多引數傳遞和分頁儲存過程)

AspNetPager7.2用法

1.       下載AspNetPager7.2(本文後面有連結)

2.       引用AspNetPager.dll檔案

3.       在.aspx頁面中引用,程式碼:

<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>

4.       在需要使用的地方加上對應的程式碼:

<webdiyer:AspNetPager ID="anpTopPager" runat="server" CssClass="anpager" CurrentPageButtonClass="cpb"AlwaysShow="true"
PageIndexBoxType="DropDownList"ShowPageIndexBox="Always"
UrlPageSizeName="pageSize"UrlPageIndexName="pageIndex" 
ShowNavigationToolTip="True" PageSize="25"                    
OnPageChanged="anpTopPager_PageChanged" 
UrlPaging="True" EnableUrlRewriting="True"
UrlRewritePattern="~/InformationList_%itId%_{0}.htm">                 
</webdiyer:AspNetPager>

以上的具體的設定在下載的demo中有相應的例項,這裡就不多說了。具體說一下在使用多引數傳遞時要用的設定,主要要設定的是UrlPaging=”true”(是否使用url進行傳參),UrlPageIndexName=”pageIndex”(使用url傳參時使用的引數名稱,比如:information.aspx?pageindex=2,其中pageindex就是這個引數名稱,這個引數是在進行翻頁的時候自動加上的,不用手動去設定),EnableUrlRewriting=”true”(設定是否將翻頁使用url重寫功能,當然如果要使用這個功能就要涉及到在web.config進行的對應urlrewritingnet的配置,如果只是單獨使用沒有別的引數的話在下載包中的demo中的UrlRewriting這個資料夾中有詳細的介紹),UrlRewritePattern=”~/InformationLIst_%itId%_{0}.htm”(這個引數是配置引數重寫的表示式,這裡需要對應web.config中的配置進行說明)。在web.config中的配置程式碼:

<addname="InformationList"virtualUrl="^~/InformationList_(/d+)_(/d+).htm"rewriteUrlParameter="ExcludeFromClientQueryString"destinationUrl="~/InformationList.aspx?itId=$1&amp;pageIndex=$2"ignoreCase="true" />

這裡講AspNetPager控制元件中的屬性UrlRewritePattern="~/InformationLIst_%itId%_{0}.htm"和其進行對照,可以發現,%itId%代表web.config中配置的屬性destinationUrl="~/InformationList.aspx?itId=$1&amp;pageIndex=$2"中的itId,那麼最後的{0}就代表了pageIndex=$2,這樣來看看web.config配置中的屬性virtualUrl="^~/InformationList_(/d+)_(/d+).htm,這個就是表示在訪問這個頁面的時候使用information_2_1.htm便可以進行訪問了,當點選下面的翻頁控制元件的時候最後的1會對應頁數進行改變,比如第二頁表示為:information_2_2.htm。注意:這裡的&amp;就相當於在平時進行多引數傳遞時使用的&符號,如果這裡直接使用&會出現錯誤,所以使用轉義字元替代。

urlrewritingnet用法

1.  下載urlrewiringnet(本文後面有連結)

2.  新增UrlRewritingNet.UrlRewriter.dll引用

3.  <configSections>中新增<section name="urlrewritingnet" requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter" />

4.  <httpModules>中新增<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />

5.  設定對應的重寫設定,程式碼:

<urlrewritingnet rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString" defaultPage="" defaultProvider="RegEx" xmlns="http://www.urlrewriting.net/schemas/config/2006/07">

    <rewrites>

      <!-- 文章資訊詳細頁面1 -->

      <add name="InformationInfo" virtualUrl="^~/InformationInfo_(/d+).htm" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/InformationInfo.aspx?iId=$1" ignoreCase="true" />

其中virtualUrl屬性為重寫後的設定,destinationUrl屬性是重寫對應的真實url。至於別的設定可以上網再搜尋一下“UrlRewritingNet中文文件”,這裡就不多說了。本人在專案中就只使用到了上面的配置。

注:本人在專案中重寫後的字尾均為.htm,因為在專案中還有別的真正的靜態頁面.html,這樣可以將兩者區分開來,不然到釋出到iis中的時候會出現衝突。當然這裡的虛擬字尾需要在釋出的時候在iis中進行設定,本人用的是vs2008,不需要設定便可以執行。

6.  IIS中進行配置:

IIS配置:網站->屬性->目錄->配置(G)...->對映->應用程式擴充套件->新增

可執行檔案:c:/windows/microsoft.net/framework/v2.0.50727/aspnet_isapi.dll

副檔名:.htm

動作:限制為 GET,HEAD,POST,DEBUG

指令碼引擎:選中

確認檔案是否存在:不選

分頁儲存過程(本文後面有連結)

Aspnetpager和urlrewritingnet相關資源下載(帶儲存過程)地址: