【问题标题】:How can I save the state of a repeat control?如何保存重复控件的状态?
【发布时间】:2013-06-13 09:49:59
【问题描述】:

我有一个基于视图生成的重复控件。
当用户导航到文档并返回时,我想保存重复控件的状态。
我已经尝试过 ExtLib 中的寻呼机保存状态控件,但这不起作用。

请指教!

【问题讨论】:

    标签: xpages


    【解决方案1】:

    我不知道xe:pagerSaveState 是否应该与重复控件一起使用。我总是将xe:pagerSaveState 与 View/DataView/ForumView 结合使用。但是当使用重复时,我会做这样的事情来恢复我的状态:

    打开“EditYourDocument.xsp”XPage 时,将xp:repeat 控件的第一个元素写入如下范围:

    sessionScope.put('first',getComponent("repeat1").first);
    context.redirectToPage("editDocument.xsp");
    

    并将此代码添加到您的重复中:

    first="#{javascript:return (sessionScope.first != null)?sessionScope.first:0;}">
    

    当从任何其他网站返回您的视图时,您的视图应显示到正确的页面和数据。

    【讨论】:

    • 优秀!!。最有用 !!。请以片段形式提交。
    • 这将使打开文档的链接复杂化(而不是简单的 url 链接,您必须使用带有重定向的 SSJS,什么是 POST 而不是 GET,这会带来额外的性能影响)。我建议将该代码用于重复组件事件(渲染/加载),以便在分页期间更新位置(相同视图),并在从文档返回时重置(页面加载)。
    • 与大多数解决方案一样,简单的解决方案并不总是显而易见的。很棒的一段代码。我在打开按钮中使用它,因为在执行 redirectToPage 之前我必须设置其他一些东西,这样效果很好。感谢 1/2 小时的剪切和粘贴到我的每个重复视图,我是一个快乐的露营者。
    猜你喜欢
    • 1970-01-01
    • 2021-07-03
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    • 2014-08-05
    • 2018-11-12
    相关资源
    最近更新 更多