Список автозаполнения не выровнен должным образом под selectInputText - PullRequest
1 голос
/ 01 февраля 2012

У меня есть selectInputText на моей странице jsf <ice:panelPopup, которая вызывается при нажатии кнопки.

Проблема, с которой я сталкиваюсь, состоит в том, что selectInputText имеет список автозаполнения, и этот список отображается в правом нижнем углу моей страницы jsf.Как я могу сделать список автозаполнения, отображаемый чуть ниже selectInputText.Ниже приведен скриншот моего selectInputText. Вы можете видеть, как мой список появляется в правом нижнем углу, хотя я выделил значения списка серым цветом.

С уважением

http://s17.postimage.org/j86xpgnxr/screenshot.png

Код в моем jspx

<h:panelGrid id="popupBody2" width="100%" cellpadding="0" cellspacing="0" column="1">
                <ice:form id="frm">                                        
                 <tr>
<td>
                        <h:outputText value="Select City" />                        
                          <ice:selectInputText rows="10" width="300"
                        listVar="city"
                        valueChangeListener="#{bean.method}"
                        listValue="#{bean.list}">
                         <f:facet name="selectInputText">
                   <ice:panelGrid columns="3" columnClasses="cityCol">
                         <ice:outputText value="#city.state}"/>                           
                   </ice:panelGrid>
  </f:facet>
          </ice:selectInputText>           
                    <ice:panelGrid columns="2">                        
                        <ice:outputText id="country" 
                                      visible="false"  value="#{bean.currentCity.country}"/>                       
                    </ice:panelGrid>

обновление 1

<f:view xmlns:h="http://java.sun.com/jsf/html"
        xmlns:f="http://java.sun.com/jsf/core"
        xmlns:ice="http://www.icesoft.com/icefaces/component"
        xmlns:t="http://myfaces.apache.org/tomahawk">
        <ice:outputDeclaration doctypeRoot="HTML"
                doctypePublic="-//W3C//DTD HTML 4.01 Transitional//EN"
                doctypeSystem="http://www.w3.org/TR/html4/loose.dtd" />              
        <html>
        <head>

        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></meta>
        <title>Employees List</title>
        <link rel='stylesheet' type='text/css' href='./xmlhttp/css/xp/xp.css' />
        </head>

Обновление 2

a http://s7.postimage.org/46jk4tka3/autocomplete.png

Ответы [ 2 ]

1 голос
/ 31 августа 2012

это может вам помочь http://jforum.icesoft.org/JForum/posts/list/16636.page

но я обнаружил, что это будет работать только для ie7, поэтому я немного изменил код для работы в ie7,8,9. Вот мой код

if (Prototype.Browser.IE || navigator.userAgent.indexOf("MSIE 8") > -1) {
                                       var savedPos = element.style.position;
                                       element.style.position = "relative";
                                       update.style.left = element.offsetLeft + "px";
                                       update.style.top = (element.offsetTop + element.offsetHeight) + "px";
                                       element.style.position = savedPos;
                                   }
1 голос
/ 02 февраля 2012

Таким образом, я пока не могу комментировать напрямую (<50 повторений), я публикую это как ответ. Как заявил BalusC, в 1.8.2 есть ошибка, из-за которой список предложений отображался где-то еще в IE8. Это проблема относительного / абсолютного позиционирования. Таким образом, решение состояло в том, чтобы переопределить атрибут позиции css для <code>iceSelInpTxtList. В качестве альтернативы вы можете попытаться изменить вмещающий контейнер (изменить атрибут позиции). Я бы предоставил наше решение, но в настоящее время я не могу получить доступ к коду и выполнить поиск по нему.

...