为了账号安全,请及时绑定邮箱和手机立即绑定

如何限制Enumerable.Range仅使用最后一个索引的计数,并且不超过该范围?-Asp.net

如何限制Enumerable.Range仅使用最后一个索引的计数,并且不超过该范围?-Asp.net

C#
holdtom 2021-04-30 18:20:12
每次我将其用作转发器的数据源时,最终它将显示页号,这些页号在我为gridview所做的分页中没有索引。你们是否有想法根据gridview.pagecount限制此enumerable.range?我只想为每个索引单击显示10个页码。所以这是代码protected void Repeater_Load(object sender, EventArgs e){    Repeater Repeater = (Repeater)sender;    Repeater.DataSource = Enumerable.Range(GridView1.PageIndex + 1, 10);    Repeater.DataBind();}我的Gridview总共有21个页数,但是我想在每次单击数字时显示10个页码。例如在这里,我单击2,它将显示2,3,4,5,6,7,8,9,10,11或2-11,如果您在gridview中确实有10页计数,则此方法有效如果我没有10页数怎么办?如果我有3个页面计数,然后将10个放在enumerable.range中怎么办?这就是我目前面临的问题,希望大家帮助我解决当前面临的困境。并且如果我单击了21(这是最后一个页面计数),它将显示21-30,它不再位于gridview1.pageindex中。
查看完整描述

2 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

.Range 需要两个参数:起始编号和要采用的元素数量。


如果我理解正确,并且希望将页面分成10个批次,则可以动态计算这些值-


int currentPage = GridView1.PageIndex;

int batchSize = new[] { GridView1.PageCount - currentPage, 10 }.Min();


Repeater.DataSource = Enumerable.Range(currentPage, batchSize);


查看完整回答
反对 回复 2021-05-16
  • 2 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信