0

我在我的一个 Xpages 应用程序中使用 JQuery Mobile Framework。

我制作了一个包含一些条目的 listView,并希望在单击其中一个条目时显示相应的文档。我有一个带有两个 JQM 页面的 XPage。

oyu 知道这在 XPages 中是如何实现的吗?我知道有一些 JQuery mobile 插件可以在页面之间添加参数功能,但我的主要问题是没有触发服务器端事件,因此我可以刷新页面并传递我的 documentID

这些是我以前尝试过的一些事情:

  • 在我的条目周围包裹一个 div 并尝试触发服务器端事件 -> 无事件
  • 使用 <'a> 标准元素(改变页面,但没有给出参数,例如通过 url
  • 单击链接时尝试触发 XSP.partialRefreshGet 无效,因为必须停用 dojo 才能使 JQM 正常工作
  • 试图填充一个隐藏的Input来传递参数,没用,我需要一个服务器端事件
  • 单击条目以打开文档时尝试打开新的 XPage,但没有成功,要么他找不到 xpage,要么我收到无法找到 XSP 的错误。
  • 还有一些我暂时不记得的事情

有没有人有在 XPages 中使用 JQM 框架的经验?我无法想象我没有办法让它工作。

提前致谢。

4

4 回答 4

0

我能够解决这个问题,虽然它有点奇怪。我的同事不得不禁用 dojo,因为如果不关闭它,UI 就无法正确呈现。我已经在我的页面中再次激活了 dojo,并且链接现在完全可以正常工作,这意味着我可以使用我想要的参数打开另一个 XPage。

于 2013-04-19T12:36:39.653 回答
0

根据http://notesin9.com/index.php/2013/04/20/jquery-mobile-seems-incompatible-with-xpages-in-domino-9-0/?utm_source=feedburner&utm_medium=feed&utm_campaign=中的评论提要%3A+NotesIn9+%28Notes+In+9+-+Wordpress%29

在 jQuery Mobile 版本 1.3.1 中的第 16 行是问题所在。我不确定真正的问题是什么,但是如果您将第 13 行更改为 23

(function ( root, doc, factory ) { if ( typeof define === "function" && define.amd ) { // AMD。注册为匿名模块。define( [ "jquery" ], function ( $ ) { factory ( $, root, doc ); return $.mobile; }); } else { // 浏览器全局工厂( root.jQuery, root, doc ); }

(function (root, doc, factory) {// 浏览器全局工厂(root.jQuery, root, doc); }

每件事都会奏效

已经测试并且有效

于 2013-04-22T05:15:30.463 回答
0

我的同事不得不禁用 dojo,因为 UI 在不关闭的情况下无法正确呈现

是的,但我似乎只是 ND 9 和 dojo 1.8 的问题。用户嫌疑人刚刚开始写关于这个问题的博客:) http://notesin9.com/index.php/2013/04/20/jquery-mobile-seems-incompatible-with-xpages-in-domino-9-0/

到目前为止,它适用于 8.5.1 - 8.5.2。需要在 8.5.3 上进行测试,但认为它仅与 ND 9 / Dojo 1.8 相关

我已经尝试过使用不同的 JQM 命名空间( data-bcc-role 而不是 data-role ),但问题仍然存在。所以恕我直言,它一定是不同的。甚至 jQuery 的 noConflict() 也无济于事。

于 2013-04-21T06:08:23.953 回答
0

我为视图和文档使用了单独的 XPage。

<div data-role="page" id="main">
    <div data-role="header">
        <h1>Contacts</h1>
    </div>
    <div data-role="content">
        <ul data-role="listview" data-inset="true" data-filter="true">
        <xp:repeat id="contactRepeat" rows="30" value="#{contactsView}" var="dataRow" disableOutputTag="true">
            <li>
                <xp:link escape="true" id="link1">
                    <xp:this.value><![CDATA[#{javascript:return "m_ContactDetails.xsp?action=OpenDocument&documentId=" + dataRow.getDocument().getUniversalID();}]]></xp:this.value>
                    <xp:this.text><![CDATA[#{javascript:return dataRow.getColumnValue("Name");}]]></xp:this.text>
                </xp:link>
            </li>
        </xp:repeat>
    </ul>
</div>

虽然我确信您可以将视图和表单放在同一个 XPage 上(这是我在扩展库中学会的方法),但我认为拥有单独的 XPage 效果很好,我知道它允许我传递参数.

在我的扩展库一中,它打开以关注 XPage 的文档部分并选择特定文档的链接是:

http://dominodev.mydomain.com/djn/Test.nsf/m_milestoneList.xsp#milestoneDetails&databaseName=DominoDev/MyDomain!!DJN\Test.nsf&documentId=5DDB32855213FC0485257B2D00730253&action=editDocument

因此,我想如果您将数据视图中的链接设置为使用 #pageName 和 &documentId= 它可能会起作用.....

于 2013-04-17T20:17:27.150 回答