本文整理汇总了C#中Microsoft.AspNet.Razor.TagHelpers.TagHelperContext.SetPaginationContext方法的典型用法代码示例。如果您正苦于以下问题:C# TagHelperContext.SetPaginationContext方法的具体用法?C# TagHelperContext.SetPaginationContext怎么用?C# TagHelperContext.SetPaginationContext使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.AspNet.Razor.TagHelpers.TagHelperContext
的用法示例。
在下文中一共展示了TagHelperContext.SetPaginationContext方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BootstrapProcessAsync
protected override async Task BootstrapProcessAsync(TagHelperContext context, TagHelperOutput output) {
output.TagName = "nav";
output.PreContent.AppendHtml(Size == SimpleSize.Default
? "<ul class=\"pagination\">"
: $"<ul class=\"pagination pagination-{Size.GetDescription()}\">");
ChildDetectionMode = true;
context.SetPaginationContext(this);
await output.GetChildContentAsync(true);
ChildDetectionMode = false;
if (!DisableAutoActive && Items.TrueForAll(pI => !pI.Active)) {
PaginationItemTagHelper activeItem = Items.FirstOrDefault(ItemHasCurrentUrl);
if (activeItem != null)
activeItem.Active = true;
}
for (var i = 0; i < Items.Count; i++)
if (string.IsNullOrEmpty(Items[i].Content))
Items[i].Content = (i + 1).ToString();
if (Items.Any(pI => pI.Active)) {
if (PrevHref == null)
PrevHref = Items.TakeWhile(pI => !pI.Active).LastOrDefault(pI => !pI.Disabled)?.Href;
if (NextHref == null)
NextHref = Items.SkipWhile(pI => !pI.Active).Skip(1).FirstOrDefault(pI => !pI.Disabled)?.Href;
}
DisableNext = NextHref == null || DisableNext.HasValue && DisableNext.Value == false;
DisablePrev = PrevHref == null || DisablePrev.HasValue && DisablePrev.Value == false;
output.PreContent.AppendHtml(
PaginationItemTagHelper.RenderItemTag(
"<span aria-hidden=\"true\">«</span>",
PrevHref, DisablePrev.Value, false,
PrevText ?? Ressources.Previous));
output.PostContent.AppendHtml(
PaginationItemTagHelper.RenderItemTag(
"<span aria-hidden=\"true\">»</span>",
NextHref, DisableNext.Value, false,
NextText ?? Ressources.Next));
if (MaxDisplayedItems > 0 && Items.Count > MaxDisplayedItems)
if (Items.Any(pI => pI.Active)) {
MaxDisplayedItems--;
List<PaginationItemTagHelper> itemsBeforeActive =
Items.TakeWhile(pI => !pI.Active).Reverse().ToList();
List<PaginationItemTagHelper> itemsAfterActive = Items.SkipWhile(pI => !pI.Active).Skip(1).ToList();
var itemsCountBeforeActive = (int) Math.Floor((decimal) MaxDisplayedItems/2);
var itemsCountAfterActive = (int) Math.Ceiling((decimal) MaxDisplayedItems/2);
if (itemsCountAfterActive > itemsAfterActive.Count)
itemsCountBeforeActive += itemsCountAfterActive - itemsAfterActive.Count;
else if (itemsCountBeforeActive > itemsBeforeActive.Count)
itemsCountAfterActive += itemsCountBeforeActive - itemsBeforeActive.Count;
foreach (PaginationItemTagHelper item in itemsBeforeActive.Skip(itemsCountBeforeActive))
item.RenderOutput = false;
foreach (PaginationItemTagHelper item in itemsAfterActive.Skip(itemsCountAfterActive))
item.RenderOutput = false;
}
else
foreach (PaginationItemTagHelper item in Items.Skip(MaxDisplayedItems))
item.RenderOutput = false;
foreach (PaginationItemTagHelper item in Items.Where(pI => pI.RenderOutput))
output.Content.AppendHtml(PaginationItemTagHelper.RenderItemTag(item));
}