AspNetPager的UrlRewriting 動態頁面問題之修改
AspNetPager是做什麼的大家應該很清楚了,不知道的去BaiDu吧。
AspNetPager本人用的不多,主要是因為一直都在做Sql分頁,把分頁內容寫入自己的控制元件中了,也就沒有使用AspNetPager控制元件,最近做了一個需要對XML資料分頁,自己也寫了一個,不太理想,就想起了AspNetPager了,但是在測試中發現一個小問題,我用的是V7.2版本,不知道新版本中有沒有解決此類問題,我的網站是使用UrlRewriter的,aspx頁面也是動態生成的,如:/Page/118.aspx
AspNetPager控制元件的UrlRewriter分頁是加入EnableUrlRewriting="true" UrlRewritePattern="./listpage_{0}.aspx" listpage.aspx檔案是固定的,無法使用 UrlRewritePattern="./listpage_{0}.aspx"功能,AspNetPager控制元件的UrlRewriter分頁的另一方法是 UrlRewritePattern="",但UrlRewritePattern="",取出當前狀態的虛擬路徑下的aspx頁面,取不到重寫後的路徑118.aspx,無法實現118_2.aspx的分頁效果。在對AspNetPager控制元件進行修改,以適應動態aspx頁面的分頁:
開啟aspnetpager.cs檔案,找到UrlRewritePattern屬性部分,如下
public string UrlRewritePattern
{
get
{
object obj = ViewState["URPattern"];
if (null == obj)
{
if (null != cloneFrom)
return cloneFrom.UrlRewritePattern;
if (EnableUrlRewriting)
{
if (!DesignMode)
{
string filePath = Page.Request.FilePath;
return Path.GetFileNameWithoutExtension(filePath) + "_{0}" + Path.GetExtension(filePath);
}
}
return null;
}
return (string)obj;
}
set
{
ViewState["URPattern"] = value;
}
}
修改位置:public string UrlRewritePattern 中的 Line:1280 ; Line:1281
修改內容:1280行原內容:string filePath = Page.Request.FilePath;
修改後內容: string filePath = Page.Request.RawUrl.ToString(); if (filePath.IndexOf("_") > -1) filePath = filePath.Substring(0, filePath.IndexOf("_")) + filePath.Substring(filePath.IndexOf("."));
1281行原內容:return Path.GetFileNameWithoutExtension(filePath) + "_{0}" + Path.GetExtension(filePath);
修改後內容:return filePath.Substring(0,filePath.IndexOf(".")) + "_{0}" + Path.GetExtension(filePath);
修改後程式碼如下:
public string UrlRewritePattern
{
get
{
object obj = ViewState["URPattern"];
if (null == obj)
{
if (null != cloneFrom)
return cloneFrom.UrlRewritePattern;
if (EnableUrlRewriting)
{
if (!DesignMode)
{
string filePath = Page.Request.RawUrl.ToString();
if (filePath.IndexOf("_") > -1)
filePath = filePath.Substring(0, filePath.IndexOf("_")) + filePath.Substring(filePath.IndexOf("."));
return filePath.Substring(0,filePath.IndexOf(".")) + "_{0}" + Path.GetExtension(filePath);
}
}
return null;
}
return (string)obj;
}
set
{
ViewState["URPattern"] = value;
}
}
使用AspNetPager控制元件的UrlRewriter分頁時只加入EnableUrlRewriting="true" 不用加入UrlRewritePattern 加入UrlRewritePattern的要把UrlRewritePattern=""設定成空
還要注意的就是要實現還要在自己的配置檔案中加入UrlRewriter規則,這樣你就可以實現 118_2.aspx的效果了。
如果你不喜歡這種格式可以修改 return filePath.Substring(0,filePath.IndexOf(".")) + "_{0}" + Path.GetExtension(filePath); 或filePath = filePath.Substring(0, filePath.IndexOf("_")) + filePath.Substring(filePath.IndexOf(".")); 這兩條程式碼把"{0}"放在你想放的位置。
AspNetPager本人用的不多,主要是因為一直都在做Sql分頁,把分頁內容寫入自己的控制元件中了,也就沒有使用AspNetPager控制元件,最近做了一個需要對XML資料分頁,自己也寫了一個,不太理想,就想起了AspNetPager了,但是在測試中發現一個小問題,我用的是V7.2版本,不知道新版本中有沒有解決此類問題,我的網站是使用UrlRewriter的,aspx頁面也是動態生成的,如:/Page/118.aspx
AspNetPager控制元件的UrlRewriter分頁是加入EnableUrlRewriting="true" UrlRewritePattern="./listpage_{0}.aspx" listpage.aspx檔案是固定的,無法使用 UrlRewritePattern="./listpage_{0}.aspx"功能,AspNetPager控制元件的UrlRewriter分頁的另一方法是 UrlRewritePattern="",但UrlRewritePattern="",取出當前狀態的虛擬路徑下的aspx頁面,取不到重寫後的路徑118.aspx,無法實現118_2.aspx的分頁效果。在對AspNetPager控制元件進行修改,以適應動態aspx頁面的分頁:
開啟aspnetpager.cs檔案,找到UrlRewritePattern屬性部分,如下
public string UrlRewritePattern
{
get
{
object obj = ViewState["URPattern"];
if (null == obj)
{
if (null != cloneFrom)
return cloneFrom.UrlRewritePattern;
if (EnableUrlRewriting)
{
if (!DesignMode)
{
string filePath = Page.Request.FilePath;
return Path.GetFileNameWithoutExtension(filePath) + "_{0}" + Path.GetExtension(filePath);
}
}
return null;
}
return (string)obj;
}
set
{
ViewState["URPattern"] = value;
}
}
修改內容:1280行原內容:string filePath = Page.Request.FilePath;
修改後內容: string filePath = Page.Request.RawUrl.ToString(); if (filePath.IndexOf("_") > -1) filePath = filePath.Substring(0, filePath.IndexOf("_")) + filePath.Substring(filePath.IndexOf("."));
1281行原內容:return Path.GetFileNameWithoutExtension(filePath) + "_{0}" + Path.GetExtension(filePath);
修改後內容:return filePath.Substring(0,filePath.IndexOf(".")) + "_{0}" + Path.GetExtension(filePath);
修改後程式碼如下:
public string UrlRewritePattern
{
get
{
object obj = ViewState["URPattern"];
if (null == obj)
{
if (null != cloneFrom)
return cloneFrom.UrlRewritePattern;
if (EnableUrlRewriting)
{
if (!DesignMode)
{
string filePath = Page.Request.RawUrl.ToString();
if (filePath.IndexOf("_") > -1)
filePath = filePath.Substring(0, filePath.IndexOf("_")) + filePath.Substring(filePath.IndexOf("."));
return filePath.Substring(0,filePath.IndexOf(".")) + "_{0}" + Path.GetExtension(filePath);
}
}
return null;
}
return (string)obj;
}
set
{
ViewState["URPattern"] = value;
}
}
還要注意的就是要實現還要在自己的配置檔案中加入UrlRewriter規則,這樣你就可以實現 118_2.aspx的效果了。
如果你不喜歡這種格式可以修改 return filePath.Substring(0,filePath.IndexOf(".")) + "_{0}" + Path.GetExtension(filePath); 或filePath = filePath.Substring(0, filePath.IndexOf("_")) + filePath.Substring(filePath.IndexOf(".")); 這兩條程式碼把"{0}"放在你想放的位置。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-610733/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ASP.NET 2.0中動態修改頁面標題ASP.NET
- 動態頁面資料載入不全的問題
- 前端靜態頁面問題彙總前端
- Asp.Net中動態頁面轉靜態頁面ASP.NET
- 使用AspNetPager進行分頁,查詢條件丟失問題
- java建立web動態網頁遇到的問題JavaWeb網頁
- Spartacus Storefront 產品明細頁面裡的 Add to Wish 動態隱藏問題
- DiscuzQ動態頁面SEO方案
- js頁面跳轉的問題(跳轉到父頁面、最外層頁面、本頁面)JS
- php如何動態修改網頁titlePHP網頁
- 動態SQL——構造通用動態頁面查詢SQL
- IOS開發之相機、相簿頁面英文問題iOS
- 動態載入頁面--小練
- AspNetPager分頁控制元件的使用控制元件
- VUE 單頁面應用 修改頁面titleVue
- IP頁面訪問域名介面問題
- 【靜態頁面架構】CSS之表格架構CSS
- vue之this.$router.push頁面重新整理問題Vue
- 動態invoke的問題?
- 動態修改linkbutton標題
- 小程式頁面動態配置實現
- ASP.NET動態生成html頁面ASP.NETHTML
- flutter TabBarView 動態新增刪除頁面FluttertabBarView
- 如何解決快應用頁面滑動卡頓問題
- 模式視窗頁面不更新的問題模式
- jsp頁面掛死問題JS
- 解決antdesign頁面滑動時下拉框漂浮的問題
- H5頁面遮罩彈框下層還能滾動的問題H5遮罩
- 動態構建的多頁面vue-cli模版Vue
- 貓客頁面內元件的動態化方案-Tangram元件
- UIWebView自動快取導致頁面樣式存在問題UIWebView快取
- Web頁面動態重新整理時間Web
- 利用JQuery的load函式動態載入頁面 以及jQuery動態載入頁面和請求所返回的資料jQuery函式
- 問一個動態物件的問題物件
- 關於頁面中彈窗的定位問題
- JSP頁面裡中文的亂碼問題JS
- 請教structs中頁面跳轉的問題Struct
- 鴻蒙開發之修改啟動頁入口鴻蒙