即使在此ajax example 这是我真正喜欢的外观,当顶级网格被排序时,#34;状态"你正在做什么"消失"
例如,
打开第一个人的行(Nancy Davolio),这样你就可以看到销售网格
按销售网格中的订单总计排序
按顶级网格中的出生日期排序
Nancy Davoilo现在应该排在第二位。打开她的行。销售网格不再按订单总额
排序
这可能看似微不足道,或者说我挑剔;但是:
如果我在销售网格上有一些文本框(或其他一种接受用户输入的方法),我会假设在排序顶级网格时会被破坏。 我也认为即使我在顶级网格上有这个输入,对顶级网格进行排序(或者如果有过滤器则进行过滤)会破坏此输入。
似乎即使是分页也会破坏它。
理想的排序和分页行为不仅仅是出现"要做客户端,因为它使用ajax请求,但实际上是客户端完成。这意味着网格的实际行按字面顺序排序(过滤,分页等)客户端,以便任何客户端更改,例如向文本框添加文本,向对象添加css类,[或更复杂示例通过Jquery将javascript对象的引用添加到对象:$("#div1").data("object",someObject)
将在排序,分页和过滤后保留。
有没有办法让这种情况发生?
我正在制作我想要做的事情吗?如果不是,我很乐意澄清。
附加说明:只要不存在大量行,我认为客户端性能损失很小,无法做到这一点。实际上,在重新创建所有记录,重复调用服务器/数据库时,服务器上的工作量会少得多,而在顶部的示例中,子页面只需要创建一次而不是两次。
答案 0 :(得分:0)
查看MasterTableView的HierarchyLoadMode属性。您引用的演示使用HierarchyLoadMode.ServerOnDemand
,根据Telerik's documentation,它表示ViewState仅维护可见项的状态。因此,当细节网格折叠时,您将失去其状态(例如排序顺序,页码等)。
还有其他模式。您可以选择HierarchyLoadMode.ServerBind
维护所有详细信息表的ViewState,但需要PostBack来扩展详细信息表。 HierarchyLoadMode.Client
呈现MasterTableView,所有DetailTables和项目都在客户端上展开/折叠 - 不需要PostBack。这些模式中的任何一个都应该保持排序顺序和与细节表相关的其他状态。
我希望这有助于回答你的问题。
答案 1 :(得分:0)
我最近得到了Telerik支持的答复,他们的AJAX网格支持客户端绑定开箱即用,只有平面结构的排序,分页和过滤(如this demo)。
对于您的情况,您可以有两种选择: