問題タブ [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 - データソースを使用してバックエンド ドキュメントを取得する
document1
extlib ダイアログ ボックスで呼び出されるデータ ソースとして開いているドキュメントにバインドするパネルを取得しました。ボタンの保存時に、バックエンド ドキュメントと の間のすべてのフィールド値を比較したいdocument1
。ただし、バックエンド ドキュメントのすべてのフィールド値は更新されているように見えるため、それらのフィールド値は で同じですdocument1
。比較は の前に行われdocuemnt1.save()
ます。
私の理解でdocument1.getDocument()
は、元の/現在のデータがすべて含まれるバックエンド ドキュメントを取得する必要があります。 document1.getDocument(true)
すべての新しいデータを取得する必要があります。すべてのフィールド値がバックエンド ドキュメントで更新されていることgetDocumentByID
がわかりました。document1.save
まだ実行されていない のでわかりません。
バックエンド ドキュメントが保存前に新しいデータで更新されるのはなぜですか?
元の/現在のデータがすべて含まれるバックエンド ドキュメントを取得するより良い方法はありますか?
xpages - SSJS グローバル変数が機能していないようです
以下のように、ssjs ライブラリでグローバル変数を宣言して使用しました。
ドキュメント モードを読み取りから編集に変更した直後に、[編集] ボタンでドキュメント オブジェクトを割り当てました。
backendDoc = document1.getDocument(); // document1 というデータソースからバックエンド ドキュメントを取得します
上記の関数のコードは、エラー NotesDocument.getItemValueString("string")) null を返します。どうやら、backendDoc は null です。
値を割り当ててssjsライブラリでグローバル変数を使用する方法はありますか? 前もって感謝します
xpages - xpages でタイプごとにコントロールのコレクションを取得する方法
タイプごとにコントロールのコレクションを取得することは可能ですか? ラベル、dojo コントロールはエディット ボックス、コンボ ボックスなどが好きです。一般的に、extlib ダイアログ ボックスから 10 個のラベル コントロールのコレクションを取得したいと考えていました。
手伝ってくれてありがとう。
lotus-notes - Dojo でアプリケーションの読み込みが遅くなる
xpages とモバイル拡張 lib を使用して開発されたモバイル アプリケーション。モバイル デバイスでの読み込みが非常に遅いです。比較統計を調べるために、別のプレーン Web HTML が Domino サーバーから提供されました。プレーン Web 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 Site Document: 出力に UTF-8 を使用する - はい
- データベース プロパティ: エンコーディング - utf-8
- 形式: 文字セット - Unicode (UTF-8)
ページの応答ヘッダーには次の行があります。Content-Type:text/html;charset=utf-8
また、文字セットをどこでも ISO-8559-1 に変更しようとしましたが、それは役に立ちません。REST コントロールのcomputeWithFormプロパティを true に設定して、フォーム charset を使用するかどうかを確認しようとしましたが、効果はありません。
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
@Esailja のアドバイスに従って、データをサーバーに保存する HTTP PUT リクエストを調べました。今回は問題のあるOpera 12.12 でテストしていました。PUT 要求のコンテンツ タイプは次のとおりです。
Firefox の場合:
これは問題を説明していますが、それを修正するにはどうすればよいですか? 私の理解では、問題はPUT 要求で文字セットを設定しないdojox.grid.DataGrid (1.6) コントロールにあります。Firefoxは自動的に設定するようです。それとも、実際には ExtLib DataGrid にあり、Dojo コントロールで文字セットを設定できませんか? DataGrid で文字セットを設定する方法が見つかりません。
編集 4
REST コントロールのcontentTypeapplication/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がデータを取得するためにajaxGETリクエストを送信する場合、Cache-Control
リクエストヘッダーにパラメーターはありません。Expires
また、Dominoは応答ヘッダーにパラメーターを配置しません。これが、古いバージョンのGETリクエストがプロキシによってキャッシュされる理由だと思います。
ブラウザでキャッシュを無効にしようとしましたが、プロキシがリクエストをキャッシュしていることを示すのに役立ちません。
私はこれが次のいずれかによって解決できると信じています:
Cache-Control
リクエストヘッダーにパラメータを設定するORExpires
応答ヘッダーにパラメーターを設定する
しかし、私はこれらのいずれかを設定する方法を見つけていません。XPageの場合、DominoはExpires:-1
応答ヘッダーを設定しますが、次のようなajaxGET要求の場合は設定しません。
これにより、JSONデータがJsonRestStoreに返され、プロキシによってキャッシュされます。
1つのオプションは、プロキシへの例外を取得して、このサイトへのリクエストがプロキシキャッシュをバイパスするようにすることです。しかし、例外は一般的に簡単に通過することはできません。
何か案は?ありがとう。
Update1
私の同僚は、dojox.data.JsonRestStoreによって行われたxhr GETリクエストをインターセプトし、キャッシュを防ぐためにURLに時間パラメーターを追加できることを提案しました。これについての私の質問は次のとおりです。
ページ上のすべてのDojoxhrリクエストでキャッシュを防止する
Update2
@SvenHasselbachには、すべてのxhrのキャッシュを防ぐための優れたソリューションがあります。
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 の初心者からのもう 1 つの簡単な問題です。
Extension Library の Navigator コントロールを使用しようとしています。何をしても、試してみたどのページでもレンダリングできません。コードは以下です。ご協力ありがとうございます。
<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>