【问题标题】:Need syntax to call a refresh on one component from another on the page需要语法从页面上的另一个组件调用刷新
【发布时间】:2012-03-01 19:52:20
【问题描述】:

我有一个相当简单和常见的用例。一个面板,其中驻留了一个重复控件。重复控件通过键从视图查找中获取其内容。在该重复控件下方是另一个面板。这个面板有一个数据绑定到一个新的notesdocument。该面板上有几个用于新文档的字段和一个提交按钮。

一切正常,但是在提交之后(大概在“postSaveDocument()”事件中)我想回调到重复控件并让它重新执行查找并刷新其内容。

我希望从语法上理解,我如何从文档的其他地方引用重复控件及其属性和方法——其次(虽然我可以在弄清楚第一部分后查找它)什么refresh() 方法将用于该重复控制。

理想情况下,我认为它类似于:xp:page.repeatcontrolname.refresh()——尽管我知道这是不对的。

我敢肯定,一旦我看到一个例子,它就会适用于无数其他事情。

更新:

我发现重复的元素实际上令人耳目一新,但我没有看到列表中添加了新条目。最终,原因是为了向重复列表添加另一个条目,我需要一个新的“控件”——但我选中了那个框(在重复控件上),上面写着“在页面创建时创建控件”。它阻止了我的 XPage 为要显示的新文档创建另一个条目!

【问题讨论】:

    标签: xpages


    【解决方案1】:

    本文解释了执行您所描述的操作的语法:
    http://avatar.red-pill.mobi/tim/blog.nsf/d6plinks/TTRY-84B6VP

    【讨论】:

    • 谢谢,蒂姆。我会检查一下。这些看起来都是我无论如何都应该阅读的文章。
    • 如果我能让它发挥作用,我有 99% 的把握能做到我想要的。我花了大约一个小时才找到该事件的放置位置,然后我将代码放入:` XSP.partialRefreshGet("#{id:view:_id1:ExistingDevicesList}"); ` 和....我得到的只是一个对话框,上面写着:“更新某些页面时发生错误。_c9 未定义”我会继续寻找。
    • 这是客户端 JS,因此请确保将其放在正确的位置,并且 ID 应该只是重复控件的 ID,因此 'XSP.partialRefreshGet("#{id:ExistingDevicesList}") ;' #{id:xyz} 在运行时被转换为控件的正确页面 ID
    • 是的,我认为 Tim 的客户端方法有些道理,因为需要在保存新文档之后进行刷新。我知道我可以通过重新加载整个页面来实现它,坦率地说,我很想这样做 - 但我认为必须有更好的方法来做到这一点。
    • #{id:someComponentId} 语法告诉渲染器将值转换为客户端 ID。因此,而不是 XSP.partialRefreshGet("#{id:view:_id1:ExistingDevicesList}"),它应该只是 XSP.partialRefreshGet("#{id:ExistingDevicesList}")... 在渲染时,JS 将是发出的将是 XSP.partialRefreshGet("view:_id1:ExistingDevicesList"),如果 "view:_id1:ExistingDevicesList" 是 "ExistingDevicesList" 组件的客户端 ID...希望有意义。
    【解决方案2】:

    我觉得这个捕捉到了实际的用例。

    http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Create_and_display_responses

    人们容易错过的关键设置是“ignoreRequestParams”。

    【讨论】:

    • 谢谢,内森。我去看看。
    【解决方案3】:

    安德鲁,

    “XSP.PartialRefreshGet”调用在 Domino 版本 8.5.3 中被破坏,导致“_c9 is undefined”错误。

    看看 Tommy Valand 发表的文章:
    http://dontpanic82.blogspot.com.au/2012/03/patch-for-bug-in-xsppartialrefreshget.html

    基本上要解决这个问题,需要将第二个参数传递给调用,例如:

    XSP.partialRefreshGet("#{id:ExistingDevicesList}", "")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-10
      • 2020-07-04
      • 2016-08-25
      • 1970-01-01
      • 2014-10-31
      • 1970-01-01
      相关资源
      最近更新 更多