Я использую автозаполнение с менеджером сущностей. В большинстве случаев «selectedVendorList» заполнен, поэтому в поле ввода предварительно загружаются элементы <li/>
при загрузке страницы. Я хотел бы иметь возможность отображать имя каждого поставщика в виде всплывающей подсказки, используя «заголовок». Я могу отображать жестко запрограммированный заголовок и даже общаться с компонентом поддержки с помощью атрибута title. Однако я не могу понять, как передать индекс конкретного элемента vendor
компоненту поддержки.
Я могу сделать это:
<p:autoComplete id="vendorCodeCtl" multiple="true"
value="#{ue.selectedVendorList}"
completeMethod="#{ue.completeVendor}"
var="vendor" itemLabel="#{Vendor.itemCode}"
itemValue="#{Vendor}" forceSelection="true"
scrollHeight="400" converter="entityConverter" title="some hard-coded tooltip">
<p:column style="width:10%">
<h:outputText value="#{Vendor.itemName}" /> -- <h:outputText value="#{Vendor.itemCode}" />
</p:column>
</p:autoComplete>
Я могу сделать это, и он достигает боба, но бин не знает, о каком элементе я говорю:
title="#{ue.getVendorName}"
но я хочу сделать это:
title="#{Vendor.itemName}"
или даже это:
title="#{ue.getVendorName(indexofvendor)}"
Опять же, этот вопрос касается не ввода данных в поле автозаполнения, а получения подсказок к заголовкам для элементов, которые уже заполняют поле.
Я не знаю, может быть, это плохой дизайн, и я должен просто поместить свои «выбранные» элементы в таблицу данных, но это работает с элементами, остающимися в поле ввода, мне просто нужно добавить всплывающую подсказку.
ОБНОВЛЕНИЕ : После проверки структуры dom я вижу, что заголовок применяется к «ui-autocomplete-input-token» (все поле ввода), а не к «ui-autocomplete-token» (индивидуальный <li/>
element), поэтому я думаю, что, вероятно, невозможно соотнести названия с отдельными элементами. Мне, вероятно, придется написать несколько пользовательских js.
спасибо!