ジョブ番号フィールドに先行入力機能を提供しようとしています。フィールドのパターンは8で、その後に必要な数のゼロが続き、入力する文字列を合計10桁にします。つまり、8000001234または8001234567です。これらの例では、ユーザーは1234または1234567と入力するだけで、先に入力して対応するドキュメントを返すようにします。これは可能ですか?
3 に答える
これは、xp:typeAheadのパラメーターvalueMarkupを使用して実行できます。提案応答では、 display:noneセクションのフィールドに追加する値を追加します。非公式クラスのスパンは、提案リストのパーツ表示です。HTMLコードを使用して非公式セクションを変更/設計できます(複数行の情報を含める、画像を追加するなど)。
簡単な例を次に示します。
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:inputText id="inputText1" value="#{requestScope.TypeAhead}">
<xp:typeAhead mode="partial" minChars="1"
var="searchValue" valueMarkup="true">
<xp:this.valueList>
<![CDATA[#{javascript:
var directoryTypeahead = function (searchValue:string) {
/*** generate your matches ***/
var matches = {};
for( var i=10;i<20;i++){
matches[i] = { display: "80000" + i };
}
/*** return typeahead data ***/
var returnList = "<ul>";
for (var matchEntry in matches) {
var match = matches[matchEntry];
var matchDetails:string = [
"<li><div style=\"display:none;\">",
matchEntry,
"</div><span class=\"informal\"><strong>",
match.display,
"</span></li>"
].join("");
returnList += matchDetails;
}
returnList += "</ul>";
return returnList;
}
directoryTypeahead(searchValue)
}]]>
</xp:this.valueList>
</xp:typeAhead>
</xp:inputText>
要件に合わせて、一致を生成する間の部分を変更する必要があります。
Roy-別のオプションは、独自のtypeAheadをロールし、すぐに使用できるバージョンを使用しないことです。
http://xomino.com/2012/05/01/jquery-in-xpages-8-tokeninput-autocomplete/
トークンオートコンプリートを使用すると、検索入力と表示出力を制御できます。このようにして、80000123文字列全体を表示でき、ユーザーが入力したテキストとして123が強調表示されます。
おそらく部分的な答えですが、しばらく前にRasmus Bauckによるブログ投稿に出くわしました。このブログ投稿では、独自のコードを使用して先行入力呼び出しを処理する手法について説明しています。
私はそれを試してみることができませんでしたが、あなたの質問を見て、それは私の記憶を揺さぶった。
http://devxpages.blogspot.com.au/2010/04/extending-xpages-type-ahead.html
それが役に立てば幸い、
ブレンダン