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()(第一页),怎么让它在哪个页中删除还是还是回到哪个页
如果你要这样做的话 应该可以 方法有很多 需要记录一些值 在删除的同时判断后
用记录的数据在去处理绑定你要首先显示的数据
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语句要求每页十条要查询的是第二页