簡體   English   中英

自定義分頁列表呈現

[英]Customize list rendering for pagination

我正在嘗試在Orchard中實現無限滾動進行最小的更改。

我使用的腳本需要用jquery選擇器完美地識別尋呼機的下一頁鏈接。

目前,標准的果園尋呼機以這種方式呈現:

<li><a href="/OrchardLocal/ricette?page=2">&gt;</a></li>

令人沮喪的渲染是:

<li class="next"><a href="/OrchardLocal/ricette?page=2">&gt;</a></li>

我嘗試了很多方法來覆蓋Pager_Next模板但沒有快樂。 尋呼機是一個列表,列表由代碼完成。 沒有簡單的方法來覆蓋。

一篇很棒的文章應該解釋如何錯過一些基本部分(例如覆蓋整個列表): http//weblogs.asp.net/bleroy/overriding-the-pager-rendering-in-orchard

現在我的解決方法是更改​​Orchard源CoreShapes.cs以進行列表渲染,添加以下兩行:

if (itemTag != null) {
  if (index == 0)
    itemTag.AddCssClass("first");
  if (index == count - 1)
    itemTag.AddCssClass("last");

  //new lines
  if (index == 1 && count > 2)
    itemTag.AddCssClass("previous");
  if (index == count - 2 && count > 2)
     itemTag.AddCssClass("next");

它到目前為止工作但我不喜歡它

1)它改變了果園的來源,這很糟糕

2)它改變了所有列表(而不僅僅是尋呼機)

那么“我怎樣才能覆蓋JUST我的主題和JUST尋呼機的列表,以便在Page_Next li標簽上自動添加一個類?”

謝謝

在Pager.Next.cshtml備用視圖中嘗試這樣的操作:

@using System.Web.Routing;
@{
    string text = Model.Value.ToString();
    string action = Model.RouteValues["action"].ToString();
    RouteValueDictionary routeValues = (RouteValueDictionary)Model.RouteValues;
}

<span><a class="next" href="@Url.Action(action, routeValues)">@text</a></span>

我不確定joshb的答案是否足以滿足您的需求。 否則我會說幾乎相同的事情。

更改主題中的Pager.Next.cshtml和Pager.Previous.cshtml,只需添加一種方法來識別鏈接。

使用jQuery將您需要的類添加到父級。

這絕不是一個優雅的解決方案,但它可以在不改變核心且不影響其他列表的情況下完成您的要求。

我的測試看起來像這樣,僅用於測試,僅用於下一步,但你明白了。

(不要明顯使用id,因為它會給你重復的id,這只是一個快速而骯臟的例子)

Pager.Next.cshtml

@{
    var RouteValues = (object)Model.RouteValues;
    RouteValueDictionary rvd;
    if (RouteValues == null) {
        rvd = new RouteValueDictionary();
    }
    else {
        rvd = RouteValues is RouteValueDictionary ? (RouteValueDictionary)RouteValues : new RouteValueDictionary(RouteValues);
    }
}
<a id="pagination-pager-next" href="@Url.Action((string)rvd["action"], rvd)"><i class="fa fa-angle-right"></i></a>

並在Pager.cshtml的末尾添加了這個,但你可能有一個更好的地方:

<script>
    $(document).ready(function () {
        $("#pagination-pager-next").parent().addClass("next");
    });
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM