2013-08-01 3 views
1

Primefaces 3.5Primefaces р: панель ширина проблема внутри в р: Схема

Когда я установил p:dataTable в p:panel, панель не может отображать совместимую ширину. Проблема table width больше, чем panel width как показано ниже.

enter image description here

Если удалить p:layout, это нормально.

Я хотел бы получить panel with lager than table width. Можно ли решить, используя jQuery?

panel.xhtml

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:p="http://primefaces.org/ui"> 
    <h:head> 
    </h:head> 
    <h:body> 
     <p:layout fullPage="true"> 
      <p:layoutUnit position="west" size="260"> 
       left 
      </p:layoutUnit> 
      <p:layoutUnit position="north" size="50"> 
       header 
      </p:layoutUnit> 
      <p:layoutUnit position="center" resizable="true"> 
       <h:form enctype="multipart/form-data"> 
          <p:panel header="Vehicle Information" id="vehicleInfoWizardPanel"> 
           <p:dataTable id="vehicleTable"> 
            <p:column headerText="Sr. No"> 
            </p:column> 
            <p:column headerText="Registration No"> 
            </p:column> 
            <p:column headerText="Model"> 
            </p:column> 
            <p:column headerText="Engine No"> 
            </p:column> 
            <p:column headerText="Chassis No"> 
            </p:column> 
            <p:column headerText="Cubic Capacity"> 
            </p:column> 
            <p:column headerText="Seating"> 
            </p:column> 
            <p:column headerText="Weight (Ton)"> 
            </p:column> 
            <p:column headerText="Sum Insured"> 
            </p:column> 
            <p:column headerText="Product Type"> 
            </p:column> 
            <p:column headerText="Add On"> 
            </p:column> 
            <p:column headerText="Period (Month)"> 
            </p:column> 
            <p:column headerText="Manufacture"> 
            </p:column> 
            <p:column headerText="Type Of Body"> 
            </p:column> 
           </p:dataTable> 
          </p:panel> 
       </h:form> 
      </p:layoutUnit> 
      <p:layoutUnit position="east" size="260"> 
       Right 
      </p:layoutUnit> 
      <p:layoutUnit position="south" size="40"> 
       footer 
      </p:layoutUnit> 
     </p:layout> 
    </h:body> 
</html> 

обновление

Даже если я ее ширину с помощью JQuery, она всегда возвращается null.

var width = $("#vehicleInfoWizardPanel").width(); 
alert(width); 

Но, я получаю удивительную точку. Если я удалю h:form, все будет в порядке, не используя jquery.

+0

Почему бы не просто использовать 'style' атрибут' р: panel' и установить 'width' (например,' стиль = "ширина: 500px" '). Измените размер по мере необходимости. – Andy

+0

@ Andy, исправить ширина? Я хочу 100% ширину, но он будет совместим с p: layout content – CycDemo

+0

Это было просто предложение, 100% ширина не работает? – Andy

ответ

1

Если вы посмотрите внимательно, ширина уже на 100%. Ширина панели относительно контейнера. Вам нужно будет увеличить размер ширины, чтобы получить желаемый результат. Вы можете сделать это, используя атрибут p:panelstyle как так

<p:panel style="width: 200%" header="Vehicle Information" id="vehicleInfoWizardPanel"> 

Вы также можете переопределить PrimeFaces CSS класс .ui-panel. Вы можете найти эту ссылку полезной

How to override stylesheets of PrimeFaces?

+0

ничего себе, это нормально. Мне не нужно удалять теги. Спасибо :) Я просто установил 150%. – CycDemo

+0

Добро пожаловать :) – Andy

Смежные вопросы