【发布时间】:2011-08-28 00:08:49
【问题描述】:
即使在这个ajax example 我真的很喜欢它的外观,当顶级网格被排序时,你正在做的事情的“状态”“消失”
例如,
打开第一个人的行 (Nancy Davolio),这样您就可以看到销售网格
在销售网格中按订单总计排序
在顶层网格中按出生日期排序
南希·达沃洛现在应该排在第二位。打开她的行。
销售网格不再按订单总计排序
这可能看起来微不足道,或者我很挑剔;然而:
如果我在销售网格上有一些文本框(或其他类型的接受用户输入的方法),我会假设在对顶级网格进行排序时它会被破坏。 我还认为,即使我在顶级网格上有此输入,对顶级网格进行排序(或过滤如果有过滤器)也会破坏此输入。
似乎连分页都会破坏这一点。
所需的行为是排序和分页不仅仅是“看起来”在客户端完成,因为它使用 ajax 请求,但实际上是在客户端完成。这意味着网格的实际行在客户端是按字面排序(过滤、分页等)的,因此任何客户端都会发生变化,例如向文本框添加文本、向对象添加 css 类 [或更复杂的例如,通过 Jquery 向对象添加对 javascript 对象的引用:$("#div1").data("object",someObject) 将在排序、分页和过滤后持续存在。
有没有办法做到这一点?
我是否清楚地说明了我想要做的事情?如果不是,我很乐意澄清。
附加说明:我认为,只要行数不是很大,执行此类操作对客户端性能的影响就会很小。事实上,在服务器上重新创建所有记录、重复调用服务器/数据库的工作会少很多,并且在我的顶部示例中,子页面只需要创建一次而不是两次。
【问题讨论】:
-
我有一种悲伤的感觉,答案是没有 Telerik 支持的方法来做到这一点。我想我可以删除 Telerik 分页,让它为我创建所有行,然后隐藏并显示以自己进行分页。 (我可以手动控制telerik分页控件吗?)排序也一样,只是有一个函数接受行的所有id并在col上排序,然后返回排序后的id列表,然后我只需更改订购...我想我可以在所有客户端有效地做到这一点?虽然那时使用 Telerik 网格有什么意义?
标签: javascript jquery html telerik radgrid