问题标签 [xpages-extlib]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xpages - Xpages 在 extlib 对话框中获取组件值
我在 extlib 对话框的面板中定义了一个文档数据源(称为 document1)。在此面板中,它包含对话框内容和对话框按钮栏。在对话框内容中,包含一个自定义控件,该控件具有所有组件,例如 dojo 编辑框、列表框、单选按钮等。在对话框按钮栏中,它包含一个保存按钮。保存时,我无法通过以下 getComponent document.getDocument.getxxx 从任何组件获取值:
有趣的是知道 document1.sertValue("control", newvalue) 和 document1.getDocument(true).isNewNote() 都在工作。
对话框从重复中的视图列打开。所有数据都正确显示在对话框中。我可以保存修改后的数据,检索它们并毫无问题地显示它们。唯一让我无法获得他们处理价值的东西。
Save 事件处理程序已完全更新,并为面板设置了部分执行模式
面板忽略其参数并将范围设置为请求但没有运气。
非常感谢您的帮助。提前致谢。
xpages - Use datasource to get backend document
I got a panel which bind to an open document as data source called document1
in an extlib dialog box. On button save, I want to compare all the field values between back-end document and document1
. However, all the field values from back-end document are seemed to be updated therefore their field values are the same in document1
. The comparison is done before docuemnt1.save()
.
From my understanding, document1.getDocument()
should get the back-end document which all original/current data. document1.getDocument(true)
should get all new data. I had try to getDocumentByID
and found that all field values are updated in back-end document. I have no idea because document1.save
not yet executed.
Why back-end document being updated with new data before save?
Is there any better way to get back-end document which all original/current data?
xpages - SSJS 全局变量似乎不起作用
我在 ssjs 库中声明并使用了一个全局变量,如下所示:
在将文档模式从读取更改为编辑后,我在编辑按钮中为其分配了一个文档对象:
backendDoc = document1.getDocument(); // 从名为 document1 的数据源获取后端文档
上述函数中的代码返回错误 NotesDocument.getItemValueString("string")) null。显然,backendDoc 为空。
任何想法如何在 ssjs 库中分配值和使用全局变量?提前致谢
xpages - 如何在 xpages 中按其类型获取控件集合
是否可以按其类型获取控件集合,例如。标签、dojo 控件喜欢编辑框、组合框等。总的来说,我想从 extlib 对话框中获取 10 个标签控件的集合。
感谢帮助。
lotus-notes - Dojo 使应用程序加载缓慢
使用 xpages 和移动扩展库开发的移动应用程序。在移动设备上加载非常缓慢。为了研究比较统计数据,Domino 服务器提供了另一个纯 Web HTML。我们发现纯网页 HTML 加载速度非常快,加载缓慢的原因是 DOJO。以下是加载缓慢的移动页面的快照。关于如何加快 Dojo 加载的任何提示?
rest - 有没有办法在 xe:restViewColumn 中返回 JSON 对象?
我正在尝试使用 viewJsonService 服务类型在 XPage 上生成 REST 服务。
在列中,我需要一个 JSON 对象并尝试使用以下代码解决该问题:
我期待为该特定列得到这个:
我得到的是:
当尝试对数组 arrParticipants 使用 toJson 时,结果不是有效的 JSON 格式:
当尝试对数组 arrParticipants 使用 fromJson 时,结果是:
有没有办法得到想要的答案?
utf-8 - 从 DataGrid 保存时,斯堪的纳维亚字符会变得混乱
我正在开发一个xe:djxDataGrid
通过xe:restService
. 它从 Domino 文档加载数据,此时所有斯堪的纳维亚字符(如 ä 和 ö)看起来都正常。
但是如果数据被修改并保存回服务器,ä 会变成 ä 并且 ö 会变成 ö。我认为这是因为数据是 UTF-8 编码的,但在某些时候会被解释为 ISO-8559-1。
我正在尝试在任何地方使用 UTF-8:
- Internet 站点文档:使用 UTF-8 进行输出 - 是
- 数据库属性:编码 - utf-8
- 形式:字符集 - Unicode (UTF-8)
页面的响应头有这一行:Content-Type:text/html;charset=utf-8
我还尝试将字符集更改为 ISO-8559-1,但这无济于事。我尝试将 REST 控件的computeWithForm属性设置为 true 以查看是否使其使用表单字符集,但它没有效果。
在Firefox (17.0.1) 中一切正常!该问题至少出现在Chrome和IE9中。
因为它是特定于浏览器的,所以我认为当 Dojo 将数据发送到 REST 服务时它会中断。但我还没有看到专门告诉 Dojo 使用 UTF-8 的方法。
HTML 标记如下所示:
铬:<html lang="fi">
火狐:<html class="dj_gecko dj_contentbox" lang="fi">
djConfig 是这样的:djConfig="locale: 'fi-fi'
.
Domino 版本是 8.5.3FP3,ExtLib 日期是 20121217。
不幸的是,我不能强迫用户只使用 Firefox。任何想法如何解决这一问题?
编辑 1
ExtLib 演示应用程序中出现了同样的问题:xpagesext.nsf/REST_DojoGrid.xsp 和 xpagesext.nsf/REST_DojoGridJsonRest.xsp。
编辑 2
作为一种解决方法,我可以在表单上的字段输入翻译中执行此操作:
这在我在 REST 控件中启用computeWithForm时有效。我需要包括所有可能使用的非英语字符。还是有一种通用的方法来转换所有?
编辑 3
根据@Esailija 的建议,我检查了将数据保存到服务器的 HTTP PUT 请求。这次我用同样有问题的Opera 12.12 进行测试。PUT 请求的内容类型为:
使用 Firefox 是:
这解释了问题,但如何解决呢?据我了解,问题出在dojox.grid.DataGrid (1.6) 控件上,它没有在 PUT 请求中设置字符集。Firefox 似乎会自动设置它。或者实际上是在 ExtLib DataGrid 中未能在 Dojo 控件中设置字符集?我还没有找到在 DataGrid 中设置字符集的方法。
编辑 4
尝试将REST 控件中的contentType属性从更改application/json
为application/json; charset=UTF-8
。这没有帮助,PUT 的内容类型仍然是application/json
.
谢谢,
- 帕努
css - ApplicationLayout中的浮动工具栏?
请参阅此问题以了解我正在尝试做什么。唯一的例外是我正在使用 ApplicationLayout,并且我想要 PlaceBar 下方的工具栏。有没有办法欺骗 CSS 在 PlaceBar 下方显示工具栏,然后在滚动时将其保持在页面顶部?或者,如何修复 ApplicationLayout 的顶部(即 PlaceBar、TitleBar 等),使它们也不会滚动?
caching - 在 ExtLib REST 控件中禁用缓存(使用 dojox.data.JsonRestStore)
在我的 XPage 中,我有一个xe:djxDataGrid
( dojox.grid.datagrid
),它使用xe:restService
了似乎使用的dojox.data.JsonRestStore
.
没有代理一切正常,但由于公司政策,我的客户通过代理访问应用程序。在用户更新 DataGrid 中的数据后,它会在代理后面访问时显示旧值。
REST Control/JsonRestStore 发送ajax GET 请求获取数据时,请求头中没有Cache-Control
参数。并且 Domino 不会Expires
在响应头中放置参数。我相信这就是为什么旧版本的 GET 请求被代理缓存的原因。
我们试图在浏览器中禁用缓存,但这无济于事,这表明代理正在缓存请求。
我相信这可以通过以下方式解决:
Cache-Control
在请求标头中设置参数或Expires
在响应标头中设置参数
但是我还没有找到设置其中任何一个的方法。对于 XPage Domino 设置Expires:-1
响应标头,但不适用于 ajax GET 请求,即:
这会将 JSON 数据返回到 JsonRestStore 并由代理缓存。
一种选择是尝试获取代理的例外情况,以便对该站点的请求将绕过代理缓存。但是例外通常不容易通过。
有任何想法吗?谢谢。
更新1
我的同事建议我可以拦截 dojox.data.JsonRestStore 发出的 xhr GET 请求,并在 URL 中添加时间参数以防止缓存。这是我的问题:
更新2
@SvenHasselbach 有一个很好的解决方案来防止所有 xhrs 的缓存:
http://openntf.org/XSnippets.nsf/snippet.xsp?id=cache-prevention-for-dojo-xhr-requests
它似乎工作得很好,&dojo.preventCache=
参数被添加到 URL 中,并且请求似乎也使用这个参数返回了正确的 JSON。但是当我使用该代码时,DataGrid 停止工作。每个 xhr 都会导致此错误:
尝试使用 Firefox 和 Chrome。数据的第一页仍然加载,因为 xhr 拦截尚未到位,但后续页面在每个单元格中仅显示“...”。
xpages - xapges 导航器未显示
xpages初学者的另一个希望简单的问题。
我正在尝试使用扩展库中的导航器控件。无论我用它做什么,我都无法让它在我尝试过的任何页面上呈现。代码如下。感谢您的任何帮助。
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xe="http://www.ibm.com/xsp/coreex"
xmlns:xc="http://www.ibm.com/xsp/custom">
<xe:navigator id="outline" expandable="true">
<xe:this.treeNodes>
<xe:pageTreeNode page="/bcbsarequirements.xsp" selection="/bcbsarequirements" label="BCBSA Requirements" role="navigation"/>
<xe:pageTreeNode page="/compliance.xsp" selection="/compliance" role="navigation" label="Compliance"/>
<xe:pageTreeNode page="/finance.xsp" selection="/finance" label="Finance" role="navigation"/>
</xe:this.treeNodes>
</xe:navigator>
</xp:view>