slack

テクてく Lotus 技術者 Slack に参加しよう!

2010/01/20

XPages Tutorial Part 52 : 検索結果の取得とその表示

Getting And Displaying The Search Results {Original Source}

検索バーは徐々に形が出来上がり、データベースに全文索引が作成されていればスクリーン上に表示されます。
デフォルト値が編集ボックスに設定され、クリックすると消えるようになっています。
またビュースコープも設定しました。
今回は編集ボックスとリンクに対して検索結果を表示するページがどれかを設定し、Part 53 ではその結果を表示させる XPage を新たに作成していきます。

では簡単な方からやっていきますので、リンクから見ていくことにします。
あとで編集ボックスにもそのコードを再利用することができます。
「layout_PlaceBar」カスタムコントロールを開き、検索エリアのリンクコントロールを選択してください。

ユーザーがこのリンクをクリックしたら SearchResults.xsp という XPage を開き、検索の値を渡すようにしたいと思います。
これをするためにはリンクの onclick イベントを作成します。
イベントタブに切り替えて、onclick イベントを選択し「アクションの追加」をクリックしてください。
ここでのアクションは「ページを開く」です。

ここで開きたいページは計算の結果になりますので、ビュースコープを使用して計算させてみましょう。開くページの名前の引数として、ダイアモンドをクリックし、次のコードを入力します。
"Search.xsp?searchValue=" + viewScope.searchValue;
リンクに対しては以上です。
編集ボックスはもう少し複雑になってきます。
リンクをクリックしなくてもユーザーがエンターキーを押すと検索が始まるようにしたいと思います。

編集ボックスコントロールを選択して、イベントタブに切り替えてください。
対象のイベントは onkeypress イベントです。

「ページを開く」アクションは、先ほどリンクコントロールで行ったものとまったく同じコードをサーバーサイドのイベントとして記述します。
このままだとユーザーが何か一文字でも入力すると起動されてしますので、エンターキーが押されたかどうかの判別が必要になります。そこで、クライアントサイドのイベントを書かなければなりません。

同じ「onkeypress」イベントの中の「クライアント」タブに切り替えて次のコードを入力してください。

このコードはどのキーが押されたか確認し、エンターキーでない場合は false を返し、エンターキーである場合には true を返します。これによってユーザーがエンターキーを押し、制御をサーバーサイドのイベントに移しページを開くようになります。

これで検索の値を処理し、search.xsp という XPage に行くように設定できました。次回はそのページを作成したいと思います。

0 件のコメント:

コメントを投稿