繁体   English   中英

更新的Bean属性 <rich:dataTable> 在JSF中使用JavaScript

[英]Update Bean Property of a <rich:dataTable> using JavaScript in JSF

我有一个<rich:dataTable>并且想使用JavaScript使用'onclick'更新bean property 请找到尝试过的发布代码,

JSF代码

<rich:dataTable value="#{myBean.beanList}"
                rowIndex="rowIndex"
                var="beanName">
<facet name="header">
<rich:column>
<h:outputText value="Sample Header"/>
</rich:column>
</facet>

<rich:column>
<a4j:commandLink value="Apple" 
      onclick="modifyScript(#{beanName.booleanProperty})"> <%--Calling modifyScript--%>
<a4j:jsFunction name="jsFunction">
<a4j:actionparam name="actionParam"      
     assignTo="#{beanName.booleanProperty}"/>
</a4j:jsFunction>
</a4j:commandLink>
</rich:column>
</rich:dataTable>

的JavaScript

function modifyScript(booleanProperty)
{
   booleanProperty = !booleanProperty;    <%--Modifying the bean property--%>
   historyAllocatedFunction(booleanProperty); <%--Calling the JS Function to assign the updated bean property--%>
}

我严格不希望使用<a4j:commandLink> actiononcomplete属性,因为我不想调用server来更新bean property

上面的代码每次使用<rich:dataTable>LastIndex时都无法正常工作。

帮助我基于rowIndex访问列表。

您可以将bean属性beanName.booleanProperty分配给隐藏的输入。 像这样

<rich:column>
    <a4j:commandLink value="Apple" onclick="modifyScript(#{rowIndex})"></a4j:commandLink>
    <h:inputHidden value="#{beanName.booleanProperty}" id = "hiddenInput"></h:inputHidden>
</rich:column>

然后,使用JS更改隐藏输入的值。 提交表单后,隐藏的输入将分配给服务器端bean属性。

Java脚本

function modifyScript(index)
{
   $j("#formId\\:tableId\\:hiddenInput\\:" + index).value('<new-value>');
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM