datalist中有分页,如果在第二页删除一条数据,怎么让它刷新后又回到当前页面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了datalist中有分页,如果在第二页删除一条数据,怎么让它刷新后又回到当前页面相关的知识,希望对你有一定的参考价值。

//定义一个方法,返回所有数据
private void bind()

.......................

//删除(linkbutton)中代码,删除后调用以上方法
nav.NavigationID = Convert.ToInt32(e.CommandArgument);
nav.NavDelete();
bind();
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, typeof(LinkButton), DateTime.Now.ToString().Replace(":", " "), "alert(' 删除成功 !')", true);

如果是这样,它无论在哪个页中删除,重新绑定后都回到bind()(第一页),怎么让它在哪个页中删除还是还是回到哪个页

那需要你传参数给绑定方法了,默认是0,在第几页传具体参数给他,然后分页获取数据。 参考技术A 重新获取一下数据库数据 在重新绑定该控件
如果你要这样做的话 应该可以 方法有很多 需要记录一些值 在删除的同时判断后
用记录的数据在去处理绑定你要首先显示的数据

Rails Pagination - 从实例 id 中查找页码

【中文标题】Rails Pagination - 从实例 id 中查找页码【英文标题】:Rails Pagination - find page number from instance id 【发布时间】:2011-07-22 07:45:13 【问题描述】:

如果我有分页项目的 id,我怎样才能找到它的页码?

我正在使用 rails 3 和 kaminari。

不幸的是,将页码作为参数传递不是一种选择。分页项是由用户生成的内容维护的图像库的图像,这些内容随着时间的推移而演变。这意味着图像可能会在第一周出现在第一页,但随后一周出现在第二页。

另一种选择是保持图像的数字顺序 (acts_as_list),这在我的情况下也是不可能的,因为照片可能出现在不同范围的多个画廊中。

编辑:

为此增加了赏金,因为我多年前在各个地方都看到了同样的问题,但没有解决方案。如果没有出现活动记录解决方案,我很乐意接受 sql 查询。

【问题讨论】:

这可能效率很低,但我它可以工作gist.github.com/885484(还没有测试过),使用查询获得结果会很好,但它似乎是一个难题,我很乐意看到没有该循环的另一种方法。 您好,感谢您的回答。这会起作用,但我希望更多的查询,因为这在大型集合上会很慢。 【参考方案1】:
# Your "per_page" count
per_page = 30
# Your Image instance:
@image = Image.find_your_image
# SQL. If you're ordering by id, how many lower IDs are there?
position = Image.where("id <= ?", @image.id").count
# Your page
page = (position.to_f/per_page).ceil

现在你可以把它包装成一个类方法

class Image < ActiveRecord::Base
  def page(order = :id, per_page = 30)
    position = Image.where("#order <= ?", self.send(order)).count
    (position.to_f/per_page).ceil
  end
end

用法

@image.page
@image.page(:created_at)
@image.page(:title, 10)

【讨论】:

感谢您的回复。我相信这会很好,但还没有机会测试它,因为忙于其他事情。 再次嗨,很抱歉耽搁了这一点。您的答案经过一次更正即可;要获得该职位,必须有一个 一个改进。如果按非 uniq 列排序,结果可能是错误的。什么对我有用 - 是gist.github.com/pironim/5975256 对于类似的解决方案,请检查***.com/questions/13365089/… 以及【参考方案2】:

如果您找到页面 id 意味着它将需要一些 sql 查询。相反,您可以将页面值作为参数传递。这也会提高你的表现。

【讨论】:

谢谢拉马纳维尔。我的问题是分页实例可能并不总是出现在其关联记录的同一页面上。我将对此问题进行澄清。【参考方案3】:

我有同样的问题,但有多个订单。我只能用一个小坏把戏来让它工作。

@model = Model.find(params[:id])
page = 1
  if params[:page]
  page = params[:page]
else
  page = (Model.some_scope.order(some_attribute: :desc, updated_at: :desc).pluck(:id).index(@model.id).to_f / per_page).ceil
end

只有当你在pluck的结果中没有太多记录时它才有效,否则它会变慢。

【讨论】:

以上是关于datalist中有分页,如果在第二页删除一条数据,怎么让它刷新后又回到当前页面的主要内容,如果未能解决你的问题,请参考以下文章

Rails Pagination - 从实例 id 中查找页码

带有分页和排序的表格内的 Material UI 菜单按钮在第二页后不起作用

通过选择复选框删除记录在 Jquery 数据表的第一页上工作正常,但在第二页上不行

java中数据库中实现分页的sql语句要求每页十条要查询的是第二页

WPS的EXCEL表格,打印的时候,总是一半在第一页,另一半在第二页,求指点,怎样整合?

如何在分页中查看第二页