最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

某頁碼顯示的helper 少量調(diào)整,另附js版

 更新時間:2010年09月12日 19:37:50   作者:  
某頁碼顯示的helper 已經(jīng)少量調(diào)整,另附js版,需要的朋友可以參考下。

如果你只想下載現(xiàn)成的用,可以到這個頁面上去找。
許可證是“WTFPL”,也就是“Do What The Fuck You Want To Public License”。

源代碼如下(因為有注釋,就不另外說明了):
復制代碼 代碼如下:

public static class PageNumExt
{
/// <summary>
/// 使用傳入的委托計算并產(chǎn)生友好的頁碼。
/// </summary>
/// <param name="o"></param>
/// <param name="currentPage">當前頁碼</param>
/// <param name="actionPageNum">處理頁碼的方式</param>
/// <param name="actionFolding">處理被折疊頁碼的方式</param>
/// <param name="maxSiblings">臨近頁碼的數(shù)量</param>
/// <param name="preventFolding">阻止折疊頁碼的臨界值,超過這個數(shù)目的頁碼將會被折疊</param>
public static void PageNumView(this object o,
long currentPage, PageNumAction actionPageNum, Action actionFolding,
long maxSiblings = 2, long preventFolding = 1)
{
o.PageNumView(currentPage, actionPageNum, actionPageNum, actionFolding, maxSiblings, preventFolding);
}
/// <summary>
/// 使用傳入的委托計算并產(chǎn)生友好的頁碼。當前頁碼將會被特別對待。
/// </summary>
/// <param name="o"></param>
/// <param name="currentPage">當前頁碼</param>
/// <param name="actionCurrent">處理當前頁碼的方式</param>
/// <param name="actionPageNum">處理頁碼的方式</param>
/// <param name="actionFolding">處理被折疊頁碼的方式</param>
/// <param name="maxSiblings">臨近頁碼的數(shù)量</param>
/// <param name="preventFolding">阻止折疊頁碼的臨界值,超過這個數(shù)目的頁碼將會被折疊</param>
public static void PageNumView(this object o,
long currentPage, PageNumAction actionCurrent,
PageNumAction actionPageNum, Action actionFolding,
long maxSiblings = 2, long preventFolding = 1)
{
o.PageNumView(
currentPage, actionCurrent,
1, long.MaxValue,
actionPageNum, i => { },
maxSiblings, actionPageNum,
preventFolding, actionFolding,
maxSiblings, 0,
actionPageNum, i => { }
);
}
/// <summary>
/// 根據(jù)傳入的參數(shù)和委托來計算并產(chǎn)生友好的頁碼。當前頁碼將會被特別對待。
/// </summary>
/// <param name="o"></param>
/// <param name="currentPage">當前頁碼</param>
/// <param name="actionCurrent">處理當前頁碼的方式</param>
/// <param name="beginPage">預設的起始頁碼</param>
/// <param name="endPage">預設的結束頁碼</param>
/// <param name="actionPageNum">處理頁碼的方式</param>
/// <param name="actionFolding">處理被折疊頁碼的方式</param>
/// <param name="maxSiblings">臨近頁碼的數(shù)量</param>
/// <param name="preventFolding">阻止折疊頁碼的臨界值,超過這個數(shù)目的頁碼將會被折疊</param>
public static void PageNumView(this object o,
long currentPage, PageNumAction actionCurrent,
long beginPage, long endPage,
PageNumAction actionPageNum, Action actionFolding,
long maxSiblings = 2, long preventFolding = 1)
{
o.PageNumView(currentPage, actionCurrent, beginPage, endPage, actionPageNum, actionPageNum, actionPageNum, actionFolding, maxSiblings, preventFolding);
}
/// <summary>
/// 根據(jù)傳入的參數(shù)和委托來計算并產(chǎn)生友好的頁碼。當前頁碼、起始頁碼和終止頁碼都指定了專用的委托來處理。
/// </summary>
/// <param name="o"></param>
/// <param name="currentPage">當前頁碼</param>
/// <param name="actionCurrent">處理當前頁碼的方式</param>
/// <param name="beginPage">預設的起始頁碼</param>
/// <param name="endPage">預設的結束頁碼</param>
/// <param name="actionBegin">處理起始頁碼的方式</param>
/// <param name="actionEnd">處理結束頁碼的方式</param>
/// <param name="actionSebling">處理臨近頁碼的方式</param>
/// <param name="actionFolding">處理被折疊頁碼的方式</param>
/// <param name="maxSiblings">臨近頁碼的數(shù)量</param>
/// <param name="preventFolding">阻止折疊頁碼的臨界值,超過這個數(shù)目的頁碼將會被折疊</param>
public static void PageNumView(this object o,
long currentPage, PageNumAction actionCurrent,
long beginPage, long endPage,
PageNumAction actionBegin, PageNumAction actionEnd,
PageNumAction actionSebling, Action actionFolding,
long maxSiblings = 2, long preventFolding = 1)
{
o.PageNumView(
currentPage, actionCurrent,
beginPage, endPage,
actionBegin, actionEnd,
maxSiblings, actionSebling,
preventFolding, actionFolding,
maxSiblings, maxSiblings,
actionSebling, actionSebling
);
}
/// <summary>
/// 根據(jù)傳入的參數(shù)和委托來計算并產(chǎn)生友好的頁碼。每一種頁碼的具體處理方式都需要由調(diào)用方指派委托。
/// </summary>
/// <param name="o"></param>
/// <param name="currentPage">當前頁碼</param>
/// <param name="actionCurrent">處理當前頁碼的方式</param>
/// <param name="beginPage">預設的起始頁碼</param>
/// <param name="endPage">預設的結束頁碼</param>
/// <param name="actionBegin">處理起始頁碼的方式</param>
/// <param name="actionEnd">處理結束頁碼的方式</param>
/// <param name="currentSiblings">當前頁碼的臨近頁碼數(shù)量</param>
/// <param name="actionCurrentSibling">處理臨近頁碼的方式</param>
/// <param name="preventFolding">阻止折疊頁碼的臨界值,超過這個數(shù)目的頁碼將會被折疊</param>
/// <param name="actionFolding">處理被折疊頁碼的方式</param>
/// <param name="endOfBegin">起始頁臨近頁碼的數(shù)量</param>
/// <param name="beginOfEnd">結束頁臨近頁碼的數(shù)量</param>
/// <param name="actionBeginSibling">處理起始頁臨近頁碼的方式</param>
/// <param name="actionEndSibling">處理結束頁臨近頁碼的方式</param>
public static void PageNumView(this object o,
long currentPage, PageNumAction actionCurrent,
long beginPage, long endPage,
PageNumAction actionBegin, PageNumAction actionEnd,
long currentSiblings, PageNumAction actionCurrentSibling,
long preventFolding, Action actionFolding,
long endOfBegin, long beginOfEnd,
PageNumAction actionBeginSibling, PageNumAction actionEndSibling
)
{
long i = beginPage;
// 如果起始頁小于當前頁,就開始處理起始頁
if (beginPage < currentPage)
#region
{
actionBegin(beginPage);
i++;
endOfBegin += i; // 解決靠近起始頁的頁碼之后
var siblingBegin = currentPage - currentSiblings; // 當前頁的臨近頁從何處開始
var foldingStart = siblingBegin - preventFolding; // 頁碼折疊的底線
if (endOfBegin > siblingBegin)
endOfBegin = siblingBegin; // 保證當前頁的臨近頁,犧牲起始頁的臨近頁
for (; i < endOfBegin; i++)
actionBeginSibling(i);
if (i < foldingStart) // 如果還沒到達折疊底線,就馬上開始折疊
{
actionFolding();
i = foldingStart + 1; // 跳到折疊之后的頁碼
}
}
#endregion
// 處理當前頁之前的臨近頁
for (; i < currentPage; i++)
actionCurrentSibling(i);
// 處理當前頁
actionCurrent(currentPage);
i = currentPage + 1; // 表示當前頁已經(jīng)處理完成。
// 由于不能保證當前頁和期望的起始頁的關系,所以在此從當前頁開始計算。
var goal = i + currentSiblings; // 設定一個目標
if (goal > endPage) // 目標不要超過結束頁
goal = endPage;
// 處理當前頁之后的臨近頁,直到到達目標頁為止
for (; i < goal; i++)
actionCurrentSibling(i);
// 如果結束頁大于當前頁,就開始處理結束頁
if (endPage > currentPage)
#region
{
beginOfEnd = endPage - beginOfEnd; // 計算出結束頁的臨近頁從何處開始
var foldingStart = beginOfEnd - preventFolding;
if (i < foldingStart) // 沒有觸及折疊底線,馬上開始折疊
{
actionFolding();
i = beginOfEnd;
}
else // 全部當作當前頁的臨近頁來處理,但保留結束頁的臨近頁
for (; i < beginOfEnd; i++)
actionCurrentSibling(i);

for (; i < endPage; i++)
actionEndSibling(i);
actionEnd(endPage);
}
#endregion
}
}

JavaScript版的源代碼可以直接在前面提到的頁面下載,不過這里也列出一下:
復制代碼 代碼如下:

!function () {
var g = this;
var def_maxSiblings = 2;
var def_preventFolding = 1;
function pnView1(
currentPage, actionPageNum, actionFolding,
maxSiblings, preventFolding
) {
/// <summary>
/// 使用傳入的委托計算并產(chǎn)生友好的頁碼。
/// </summary>
/// <param name="o"></param>
/// <param name="currentPage">當前頁碼</param>
/// <param name="actionPageNum">處理頁碼的方式</param>
/// <param name="actionFolding">處理被折疊頁碼的方式</param>
/// <param name="maxSiblings">臨近頁碼的數(shù)量</param>
/// <param name="preventFolding">阻止折疊頁碼的臨界值,超過這個數(shù)目的頁碼將會被折疊</param>
pnView2(currentPage, actionPageNum, actionPageNum, actionFolding, maxSiblings || def_maxSiblings, preventFolding || def_preventFolding);
}
function pnView2(
currentPage, actionCurrent,
actionPageNum, actionFolding,
maxSiblings, preventFolding
) {
/// <summary>
/// 使用傳入的委托計算并產(chǎn)生友好的頁碼。當前頁碼將會被特別對待。
/// </summary>
/// <param name="o"></param>
/// <param name="currentPage">當前頁碼</param>
/// <param name="actionCurrent">處理當前頁碼的方式</param>
/// <param name="actionPageNum">處理頁碼的方式</param>
/// <param name="actionFolding">處理被折疊頁碼的方式</param>
/// <param name="maxSiblings">臨近頁碼的數(shù)量</param>
/// <param name="preventFolding">阻止折疊頁碼的臨界值,超過這個數(shù)目的頁碼將會被折疊</param>
pnView(
currentPage, actionCurrent,
1, Number.POSITIVE_INFINITY,
actionPageNum, null,
maxSiblings || def_maxSiblings, actionPageNum,
preventFolding || def_preventFolding, actionFolding,
maxSiblings || def_maxSiblings, 0,
actionPageNum, null
);
}
function pnView3(
currentPage, actionCurrent,
beginPage, endPage,
actionPageNum, actionFolding,
maxSiblings, preventFolding
) {
/// <summary>
/// 根據(jù)傳入的參數(shù)和委托來計算并產(chǎn)生友好的頁碼。當前頁碼將會被特別對待。
/// </summary>
/// <param name="o"></param>
/// <param name="currentPage">當前頁碼</param>
/// <param name="actionCurrent">處理當前頁碼的方式</param>
/// <param name="beginPage">預設的起始頁碼</param>
/// <param name="endPage">預設的結束頁碼</param>
/// <param name="actionPageNum">處理頁碼的方式</param>
/// <param name="actionFolding">處理被折疊頁碼的方式</param>
/// <param name="maxSiblings">臨近頁碼的數(shù)量</param>
/// <param name="preventFolding">阻止折疊頁碼的臨界值,超過這個數(shù)目的頁碼將會被折疊</param>
pnView4(currentPage, actionCurrent, beginPage, endPage, actionPageNum, actionPageNum, actionPageNum, actionFolding, maxSiblings || def_maxSiblings, preventFolding || def_preventFolding);
}
function pnView4(
currentPage, actionCurrent,
beginPage, endPage,
actionBegin, actionEnd,
actionSebling, actionFolding,
maxSiblings, preventFolding
) {
/// <summary>
/// 根據(jù)傳入的參數(shù)和委托來計算并產(chǎn)生友好的頁碼。當前頁碼、起始頁碼和終止頁碼都指定了專用的委托來處理。
/// </summary>
/// <param name="o"></param>
/// <param name="currentPage">當前頁碼</param>
/// <param name="actionCurrent">處理當前頁碼的方式</param>
/// <param name="beginPage">預設的起始頁碼</param>
/// <param name="endPage">預設的結束頁碼</param>
/// <param name="actionBegin">處理起始頁碼的方式</param>
/// <param name="actionEnd">處理結束頁碼的方式</param>
/// <param name="actionSebling">處理臨近頁碼的方式</param>
/// <param name="actionFolding">處理被折疊頁碼的方式</param>
/// <param name="maxSiblings">臨近頁碼的數(shù)量</param>
/// <param name="preventFolding">阻止折疊頁碼的臨界值,超過這個數(shù)目的頁碼將會被折疊</param>
pnView(
currentPage, actionCurrent,
beginPage, endPage,
actionBegin, actionEnd,
maxSiblings || def_maxSiblings, actionSebling,
preventFolding || def_preventFolding, actionFolding,
maxSiblings || def_maxSiblings, maxSiblings || def_maxSiblings,
actionSebling, actionSebling
);
}
function pnView(
currentPage, actionCurrent,
beginPage, endPage,
actionBegin, actionEnd,
currentSiblings, actionCurrentSibling,
preventFolding, actionFolding,
endOfBegin, beginOfEnd,
actionBeginSibling, actionEndSibling
) {
/// <summary>
/// 根據(jù)傳入的參數(shù)和委托來計算并產(chǎn)生友好的頁碼。每一種頁碼的具體處理方式都需要由調(diào)用方指派委托。
/// </summary>
/// <param name="o"></param>
/// <param name="currentPage">當前頁碼</param>
/// <param name="actionCurrent">處理當前頁碼的方式</param>
/// <param name="beginPage">預設的起始頁碼</param>
/// <param name="endPage">預設的結束頁碼</param>
/// <param name="actionBegin">處理起始頁碼的方式</param>
/// <param name="actionEnd">處理結束頁碼的方式</param>
/// <param name="currentSiblings">當前頁碼的臨近頁碼數(shù)量</param>
/// <param name="actionCurrentSibling">處理臨近頁碼的方式</param>
/// <param name="preventFolding">阻止折疊頁碼的臨界值,超過這個數(shù)目的頁碼將會被折疊</param>
/// <param name="actionFolding">處理被折疊頁碼的方式</param>
/// <param name="endOfBegin">起始頁臨近頁碼的數(shù)量</param>
/// <param name="beginOfEnd">結束頁臨近頁碼的數(shù)量</param>
/// <param name="actionBeginSibling">處理起始頁臨近頁碼的方式</param>
/// <param name="actionEndSibling">處理結束頁臨近頁碼的方式</param>
var i = beginPage;
// 如果起始頁小于當前頁,就開始處理起始頁
if (beginPage < currentPage) {
actionBegin && actionBegin(beginPage);
i++;
endOfBegin += i; // 解決靠近起始頁的頁碼之后
var siblingBegin = currentPage - currentSiblings; // 當前頁的臨近頁從何處開始
var foldingStart = siblingBegin - preventFolding; // 頁碼折疊的底線
if (endOfBegin > siblingBegin)
endOfBegin = siblingBegin; // 保證當前頁的臨近頁,犧牲起始頁的臨近頁
for (; i < endOfBegin; i++)
actionBeginSibling && actionBeginSibling(i);
if (i < foldingStart) // 如果還沒到達折疊底線,就馬上開始折疊
{
actionFolding && actionFolding();
i = foldingStart + 1; // 跳到折疊之后的頁碼
}
}
// 處理當前頁之前的臨近頁
for (; i < currentPage; i++)
actionCurrentSibling && actionCurrentSibling(i);
// 處理當前頁
actionCurrent && actionCurrent(currentPage);
i = currentPage + 1; // 表示當前頁已經(jīng)處理完成。
// 由于不能保證當前頁和期望的起始頁的關系,所以在此從當前頁開始計算。
var goal = i + currentSiblings; // 設定一個目標
if (goal > endPage) // 目標不要超過結束頁
goal = endPage;
// 處理當前頁之后的臨近頁,直到到達目標頁為止
for (; i < goal; i++)
actionCurrentSibling && actionCurrentSibling(i);
// 如果結束頁大于當前頁,就開始處理結束頁
if (endPage > currentPage) {
beginOfEnd = endPage - beginOfEnd; // 計算出結束頁的臨近頁從何處開始
var foldingStart = beginOfEnd - preventFolding;
if (i < foldingStart) // 沒有觸及折疊底線,馬上開始折疊
{
actionFolding && actionFolding();
i = beginOfEnd;
}
else // 全部當作當前頁的臨近頁來處理,但保留結束頁的臨近頁
{
for (; i < beginOfEnd; i++)
actionCurrentSibling && actionCurrentSibling(i);
}

for (; i < endPage; i++)
actionEndSibling && actionEndSibling(i);
actionEnd && actionEnd(endPage);
}
}
g.pnView1 = pnView1;
g.pnView2 = pnView2;
g.pnView3 = pnView3;
g.pnView4 = pnView4;
g.pnView5 = pnView;
g.pnView = pnView;
} ();

/201009/yuanma/pnView_NanaView.rar

相關文章

  • 一文了解ES5和ES6的區(qū)別

    一文了解ES5和ES6的區(qū)別

    ES6是JavaScript語言的主要增強,允許我們編寫程序,ES6適用于復雜的應用程序,盡管ES5和ES6在本質(zhì)上有一些相似之處,但它們之間也有許多不同之處,下面這篇文章主要給大家介紹了關于ES5和ES6區(qū)別的相關資料,需要的朋友可以參考下
    2023-05-05
  • Javascript處理循環(huán)的異步操作指南

    Javascript處理循環(huán)的異步操作指南

    這篇文章主要給大家介紹了關于Javascript處理循環(huán)的異步操作的相關資料,文中通過實例代碼介紹的非常詳細,對大家學習或者使用js具有一定的參考學習價值,需要的朋友可以參考下
    2022-03-03
  • JavaScript詳解使用Promise處理回調(diào)地獄與async?await修飾符

    JavaScript詳解使用Promise處理回調(diào)地獄與async?await修飾符

    這篇文章主要介紹了JavaScript使用Promise處理回調(diào)地獄與async?await修飾符,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • JavaScript修剪字符串的方法和技巧

    JavaScript修剪字符串的方法和技巧

    你在?JavaScript?代碼編寫中有遇到過一個你需要比較或操作處理字符串,但是在開始或者結尾有額外空格的情況嗎?在這篇博客中,我將給你展示如何使用不同的方法在?JavaScript?中修剪字符串,需要的朋友可以參考下
    2024-02-02
  • JavaScript實現(xiàn)數(shù)字數(shù)組按照倒序排列的方法

    JavaScript實現(xiàn)數(shù)字數(shù)組按照倒序排列的方法

    這篇文章主要介紹了JavaScript實現(xiàn)數(shù)字數(shù)組按照倒序排列的方法,涉及javascript中sort方法的使用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • JS基于正則截取替換特定字符之間字符串操作示例

    JS基于正則截取替換特定字符之間字符串操作示例

    這篇文章主要介紹了JS基于正則截取替換特定字符之間字符串操作方法,結合具體實例形式分析了JS基于正則實現(xiàn)針對特殊字符、數(shù)字等字符串類型的截取操作相關技巧,需要的朋友可以參考下
    2017-02-02
  • 詳解JavaScript中Math內(nèi)置對象基本方法的使用

    詳解JavaScript中Math內(nèi)置對象基本方法的使用

    Math?是javaScript的內(nèi)置對象,包含了部分數(shù)學常數(shù)屬性和數(shù)學函數(shù)方法。本文將詳細講解Math基本方法的使用,感興趣的小伙伴可以學習一下
    2022-04-04
  • 用原生js做個簡單的滑動效果的回到頂部

    用原生js做個簡單的滑動效果的回到頂部

    很多網(wǎng)頁在下方都會放置一個“返回頂部”按鈕,這樣可以幫助訪客重新找到導航或者重溫一遍廣告,于是將返回頂部功能做成了滑動效果
    2014-10-10
  • layui彈出框Tab選項卡的示例代碼

    layui彈出框Tab選項卡的示例代碼

    今天小編就為大家分享一篇layui彈出框Tab選項卡的示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • js時間日期格式化封裝函數(shù)

    js時間日期格式化封裝函數(shù)

    這里給大家推薦一款自己封裝的js時間日期格式化的函數(shù),非常的簡潔實用,分享給有需要的小伙伴
    2014-12-12

最新評論

花莲县| 新安县| 溆浦县| 武强县| 新宁县| 桃园县| 保靖县| 阳新县| 阜新| 桃园市| 千阳县| 西乌| 大渡口区| 石门县| 牡丹江市| 博白县| 甘南县| 综艺| 崇文区| 信宜市| 舒城县| 容城县| 淳化县| 高平市| 诏安县| 晋宁县| 临江市| 南宁市| 安西县| 怀仁县| 大洼县| 瑞安市| 巧家县| 城市| 金坛市| 福清市| 太白县| 开鲁县| 南通市| 宝山区| 巴林右旗|