React コンボボックスのテンプレート
Ignite UI for React コンボボックス コンポーネントを使用すると、項目、グループ ヘッダー、空のリスト、アイコンなど、さまざまな領域のカスタム テンプレートを定義できます。
コンボボックス テンプレートの例
テンプレート タイプ
Item Template (項目テンプレート)
itemTemplate
はカスタム テンプレートであり、定義されている場合は、オプションのリスト内の項目を描画するときに使用する必要があります。
<IgrCombo
valueKey="id"
displayKey="name"
groupKey="country"
data={cities}
itemTemplate={renderItemTemplate}
></IgrCombo>
function renderItemTemplate(props: { dataContext: any}): any {
return (
<span><b>{props.dataContext.name}</b> [{props.dataContext.id}]</span>
);
}
Group Header Template (グループ ヘッダー テンプレート)
groupHeaderTemplate
はカスタム テンプレートであり、定義されている場合は、オプションのリストでグループ ヘッダーを描画するときに使用する必要があります。
<IgrCombo
valueKey="id"
displayKey="name"
groupKey="country"
data={cities}
groupHeaderTemplate={renderGroupHeaderTemplate}
></IgrCombo>
function renderGroupHeaderTemplate(props: { dataContext: any}): any {
return (
<span>Country of {props.dataContext.country}</span>
);
}
スロット
カスタム テンプレート以外に、Ignite UI for React コンボボックス コンポーネントは、ユーザーがカスタム コンテンツをさまざまなコンボ パーツに渡すことを可能にするいくつかのスロットを公開します。
ヘッダー スロット
オプションのリストの上にカスタム ヘッダーをレンダリングするには、コンテンツを header
スロットに渡します。
<IgrCombo>
<header slot="header">
Header content goes here
</header>
</IgrCombo>
フッター スロット
オプションのリストの下にカスタム フッターをレンダリングするには、コンテンツを footer
スロットに渡します。
<IgrCombo>
<footer slot="footer">
Footer content goes here
</footer>
</IgrCombo>
空のリスト スロット
フィルタリング操作で結果が返されない場合にカスタム コンテンツをレンダリングするには、empty
スロットを使用します。
<IgrCombo>
<div slot="empty">¯\_(ツ)_/¯</div>
</IgrCombo>
トグル アイコン スロット
コンボ入力のトグル アイコンは、toggle-icon
スロットを介して変更することもできます。
<IgrCombo>
<span slot="toggle-icon">
<IgbIcon name="down"></IgbIcon>
</span>
</IgrCombo>
クリア アイコン スロット
クリア アイコンは、clear-icon
スロットを介して変更できます。
<IgrCombo>
<span slot="clear-icon">
<IgbIcon name="clear"></IgbIcon>
</span>
</IgrCombo>