几周前,我开始与一家新公司合作,他们正在与 Primefaces 一起使用 Java EE 。我对Java或Primefaces不太了解,所以我有点迷茫(就像我的英语一样)。
他们要求我制作一个步骤组件,但是该组件无法正常工作。他们需要该组件不要在单击下一步时禁用您所在的按钮,我的意思是,即使您在第4步中,即使您倒退,他们也希望启用该按钮。
我尝试使其将readonly属性更改为false,使用一些JavaScript和一些变量来启用链接(但这会使我的proyect崩溃),使用Java EE变量来更改其颜色.ui-step-number,但不适用于链接...
<p:steps widgetVar="steps" id="steps" readonly="false" activeIndex="#{actemplate.seccionRenovacion}" style="border: none; height: auto; width: 100%; font-weight: bold;">
<p:menuitem id="menu_step1" class="menuItemRenewal" value="#{texto['ac_menu_step1']}" style="color: #{actemplate.pasoRenovacion gt 1 ? 'green;' : ''}"/>
<p:menuitem id="menu_step2" class="menuItemRenewal" value="#{texto['ac_menu_step2']}" outcome="tratamientos" style="color: #{actemplate.pasoRenovacion gt 2 ? 'green;' : ''}"/>
<p:menuitem id="menu_step3" class="menuItemRenewal" value="#{texto['ac_menu_step3']}" outcome="personal" style="color: #{actemplate.pasoRenovacion gt 3 ? 'green;' : ''}"/>
<p:menuitem id="menu_step4" class="menuItemRenewal" value="#{texto['ac_menu_step4']}" outcome="encargados" style="color: #{actemplate.pasoRenovacion gt 4 ? 'green;' : ''}"/>
<p:menuitem id="menu_step5" class="menuItemRenewal" value="#{texto['ac_menu_step5']}" outcome="sitios_web" style="color: #{actemplate.pasoRenovacion gt 5 ? 'green;' : ''}"/>
</p:steps>
转到下一步时,可以单击之前的步骤,但是在页面更改时,您不能直接转到您正在工作的页面(如果您位于第3页并转到第1页,您不能直接直接转到第3页,您需要再次执行此步骤。
答案 0 :(得分:0)
我有解决方案,但是使用 JavaScript ,我不知道如何使其与JAVA一起使用,但是我将其发布在这里,因此,如果其他人遇到相同的问题,我希望它将为您的代码工作。
var isActive = Convert.ToBoolean(item["Wkst_Status"]);
if (isActive == true)
{
dataGridView1.Rows[n].Cells[5].Value = "Active";
}
else
{
dataGridView1.Rows[n].Cells[5].Value = "Inactive";
}
因此,首先,我对对象' steps '的所有元素进行一个变量。它也必须与 JQuery 一起使用,但是公司没有实现它,所以我使用 DOM 。
此后,我从 bean 中捕获了一个 JAVA变量,当您进行下一步操作时,该变量将被一个一个地添加。既然有了这些,您就可以创建一个简单的“ if”(我将其嵌套使用)。
最后,您可以为元素设置所需的属性。我将href和click事件设置为(这两项很重要,因为'steps'元素将 href更改为#,而 click事件更改为false < / strong>,如果您不通过该步骤,则可以进行更改,现在可以单击您当前所在的步骤,或者如果您转到先前的步骤,则再次单击该步骤),并为光标赋予样式,使外观就像您在链接上一样。