0

inputtext-field 内で先行入力機能を使用しようとしています。固定リストまたは DBColumn を使用して値を設定する (数千を超えるエントリでは速度が低下する) 代わりに、先行入力プロパティの url パラメータを使用したいと考えています。

私がこれまでに行ったことは次のとおりです。

<xp:inputText value="#{docEntry.namUsers}" id="namUsers">
    <xp:typeAhead mode="external" valueMarkup="false" minChars="3" var="namEntries" frequency="1" maxValues="10" id="typeAheadNamUsers">
        <xp:this.url><![CDATA[#{javascript:"http://server/databse.nsf/view?ReadViewEntries&OutputFormat=JSON&StartKey=" + getComponent("namUsers").getAttributes().get("value");}]]></xp:this.url>
    </xp:typeAhead>
</xp:inputText>

最低限必要な文字を入力すると、GET リクエストが発行されることがわかります。そして、この GET リクエストは、ビューの目的のコンテンツを返します。

しかし、コンテンツを解析して先行入力要素に有効なリストを与えるために、返された情報を取得する方法が見つかりませんでした。

typeahead 要素の url プロパティを使用しようとした人はいますか?

4

2 に答える 2

1

このように先行入力のurlパラメータを使用することはできません。このパラメーターは、先行入力ウィジェットを初期化するための構成パラメーターにすぎず、サーバー側のコードでは更新されません。

firebug コンソールを見ると、定義した URL (ルックアップ自体の文字を含む) に自動的に追加される$$valueという名前の URL パラメーターがあることがわかります。

Typeahead の応答は、単純な HTML コードである必要があります。

<ul>
   <li>Result 1</li>
   <li>Result 2</li>
   <li>Result 3</li>
   <li>...</li>
</ul>

【表示目的で変更は可能ですが、HTMLである必要があります】

外部リクエスト用の JSON / XML はありません。

ビューが必要な形式を返すように$$ViewTemplate (HTML コンテンツ) を作成し、リダイレクト エージェントを追加することができます。

Option Public
Option Declare

Sub Initialize
    Dim session As New NotesSession
    Dim doc As NotesDocument
    Dim hlp

    Set doc = session.Documentcontext
    hlp = Split( doc.QUERY_STRING_DECODED(0), "$$value=" )
    Print "[http://example.com/YourDB.nsf/View?OpenView&startKey=" & hlp(1) & "]"

End Sub

次に、ビューの代わりにエージェントに URL を設定できます。

<xp:typeAhead mode="external" valueMarkup="false" minChars="3"
   frequency="1" maxValues="10" id="typeAheadNamUsers"
   url="http://example.com/YourDB.nsf/RedirectAgent?OpenAgent">
</xp:typeAhead>
于 2013-02-19T14:47:51.583 に答える
0

そのURLから期待されるデータは、「コレクション対応」である必要があります。これは、区切り文字(コンマまたは改行)で区切られた値のリストを意味します。?ReadViewEntriesはその形式を提供しないため、代わりにHTMLパススルービューを使用する必要があります。私はあなたの仮定に挑戦します。ルックアップ用のデータベースが同じサーバー上にある場合、HTTPレイテンシーの追加が@DbColumnよりも高速であると推測する理由は何ですか?別のサーバーの場合は、興味深いテストになります。さらに、同じサーバーで値のルックアップを維持する方がよいでしょう。別の質問:先行入力リストに何千もの潜在的な値があるユーザーエクスペリエンスは、本当に効率的で効果的で快適なものですか?

于 2013-02-12T12:25:34.450 に答える