Manipular componentes do Primefaces com jQuery [RESOLVIDO]

5 respostas
D

Boa tarde pessoal,

Estou desenvolvendo usando JSF com Primefaces e tenho uma dúvida referente à manipulação dos componentes do primefaces com o jquery, por exemplo, para manipular uma tabela, usando html puro, eu utilizo o seguinte código

$("td:odd").addClass("odd");

Quando eu utilizo primefaces, eu consigo fazer essa manipulação? Como o jQuery identifica os componentes do prime?

Desde já obrigada!!!

5 Respostas

E

os componentes do primefaces são todos “derivados” dos componentes do jquery-ui, então vc pode pegar as classes que cada componente correspondente utiliza para obter as referências aos objetos.

Outra forma, é na construção do xhtml, colocar a propriedade styleClass como sendo a propriedade class dos componentes html padrão.

D

Oi evefuji,

Em primeiro lugar, obrigada por me responder.

Desculpa minha ignorância, mas você pode me dar um exemplo de como fazer com suas sugestões? Pq, na verdade, não entendi mto bem.

Obrigada!

E

vou pegar como exemplo o p:calendar

Se utilizarmos o p:calendar, o código gerado, por exemplo, para

<h:form id="form1"><p:calendar id="val1"/></h:form>

é

<div id="form1:val1_inline" class="hasDatepicker"><div class="ui-datepicker-inline ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all" style="display: block; "><div class="ui-datepicker-header ui-widget-header ui-helper-clearfix ui-corner-all"><a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_1319646491549.datepicker._adjustDate('#form1\\:val1_inline', -1, 'M');" title="Prev"><span class="ui-icon ui-icon-circle-triangle-w">Prev</span></a><a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_1319646491549.datepicker._adjustDate('#form1\\:val1_inline', +1, 'M');" title="Next"><span class="ui-icon ui-icon-circle-triangle-e">Next</span></a><div class="ui-datepicker-title"><span class="ui-datepicker-month">October</span>&nbsp;<span class="ui-datepicker-year">2011</span></div></div><table class="ui-datepicker-calendar"><thead><tr><th class="ui-datepicker-week-end"><span title="Sunday">Su</span></th><th><span title="Monday">Mo</span></th><th><span title="Tuesday">Tu</span></th><th><span title="Wednesday">We</span></th><th><span title="Thursday">Th</span></th><th><span title="Friday">Fr</span></th><th class="ui-datepicker-week-end"><span title="Saturday">Sa</span></th></tr></thead><tbody><tr><td class=" ui-datepicker-week-end ui-datepicker-other-month ui-datepicker-unselectable ui-state-disabled">&nbsp;</td><td class=" ui-datepicker-other-month ui-datepicker-unselectable ui-state-disabled">&nbsp;</td><td class=" ui-datepicker-other-month ui-datepicker-unselectable ui-state-disabled">&nbsp;</td><td class=" ui-datepicker-other-month ui-datepicker-unselectable ui-state-disabled">&nbsp;</td><td class=" ui-datepicker-other-month ui-datepicker-unselectable ui-state-disabled">&nbsp;</td><td class=" ui-datepicker-other-month ui-datepicker-unselectable ui-state-disabled">&nbsp;</td><td class=" ui-datepicker-week-end " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">1</a></td></tr><tr><td class=" ui-datepicker-week-end " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">2</a></td><td class=" " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">3</a></td><td class=" " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">4</a></td><td class=" " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">5</a></td><td class=" " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">6</a></td><td class=" " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">7</a></td><td class=" ui-datepicker-week-end " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">8</a></td></tr><tr><td class=" ui-datepicker-week-end " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">9</a></td><td class=" " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">10</a></td><td class=" " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">11</a></td><td class=" " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">12</a></td><td class=" " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">13</a></td><td class=" " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">14</a></td><td class=" ui-datepicker-week-end " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">15</a></td></tr><tr><td class=" ui-datepicker-week-end " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">16</a></td><td class=" " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">17</a></td><td class=" " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">18</a></td><td class=" " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">19</a></td><td class=" " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">20</a></td><td class=" " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">21</a></td><td class=" ui-datepicker-week-end " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">22</a></td></tr><tr><td class=" ui-datepicker-week-end " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">23</a></td><td class=" " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">24</a></td><td class=" " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">25</a></td><td class=" ui-datepicker-days-cell-over  ui-datepicker-current-day ui-datepicker-today" onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default ui-state-highlight ui-state-active" href="#">26</a></td><td class=" " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">27</a></td><td class=" " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">28</a></td><td class=" ui-datepicker-week-end " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">29</a></td></tr><tr><td class=" ui-datepicker-week-end " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">30</a></td><td class=" " onclick="DP_jQuery_1319646491549.datepicker._selectDay('#form1\\:val1_inline',9,2011, this);return false;"><a class="ui-state-default" href="#">31</a></td><td class=" ui-datepicker-other-month ui-datepicker-unselectable ui-state-disabled">&nbsp;</td><td class=" ui-datepicker-other-month ui-datepicker-unselectable ui-state-disabled">&nbsp;</td><td class=" ui-datepicker-other-month ui-datepicker-unselectable ui-state-disabled">&nbsp;</td><td class=" ui-datepicker-other-month ui-datepicker-unselectable ui-state-disabled">&nbsp;</td><td class=" ui-datepicker-week-end ui-datepicker-other-month ui-datepicker-unselectable ui-state-disabled">&nbsp;</td></tr></tbody></table></div></div>

Repare no id do objeto, ficou que várias tags pegaram id form1:val1****. Você pode pegar no jquery dessa forma.

Mas pelo que entendi, vc quer mudar as classes do css, o mais prático é fazer algo assim:

<h:form id="form1"><p:calendar id="val1" styleClass="classe1"/></h:form>

O componente que o prime para calendario usa é http://jqueryui.com/demos/datepicker/, com isso vc consegue buscar melhor o que você quer fazer.

W

Tudo Bem…

Pode usar sim, porém eu sempre seleciono a tabela pela class dela dessa forma:

<p:dataTable var="car" value="#{tableBean.carsSmall}" styleClass="classe">


$(".classe td:odd").addClass("odd");

porém talvez tenha uma forma mais facil de fazer eu uso os componentes do tomahawk e utilizo o rowClasses dessa forma:

<t:dataTable id="TabelaReport" var="lista" style="width: 100%;" rowClasses="row1, row2" value="#{analise.tabela}">

Lembrando que se esta utilizando o primefaces nem precisa importar o jquery ele ja possui nativo como ja foi citado ele é basedo no jQuery ui…

Qualquer duvida sempre olha o html gerado no browser…

Espero ter ajudado, valew!
Abraço!

D

Meninos,

Obrigada pelas respostas. Ambas deram certas.

Na verdade, na verdade, eu estava ajudando o design, pois como ela não manja de prime, não estava conseguindo alterar…

MUITO obrigada mesmo!!!

Bjs!

Criado 26 de outubro de 2011
Ultima resposta 26 de out. de 2011
Respostas 5
Participantes 3