【问题标题】:Why my changes into rich:datatable are not available in my home?为什么我的更改为rich:datatable 在我家中不可用?
【发布时间】:2011-11-01 03:19:51
【问题描述】:

我有一个丰富的:带有动态列的数据表...直到这里还可以...我从数据库中获取所有数据,我的代码显示所有具有正确值的复选框...但是当我更改它们并单击时“salvar”按钮另一边的值仍然和以前一样...... 但是,如果我将 inputText 放在丰富的外部:Datatable 之类的

<h:inputText value="#{matrix.teste}"/> 

并输入任何值,然后单击“salvar”,我之前输入的值正确地进入我的家......

    <ui:param name="matrix" value="#{inscricaoMatrix}" />
        <a4j:outputPanel id="matrixCredenciamento">
    <a4j:form>
            <rich:dataTable value="#{matrix.rows}" var="row" id="matrix" rendered="#{not empty query.inscricoes}">

            <rich:column label="Nome">
                <f:facet name="header">
                    <h:outputText value="Nome" />
                </f:facet>
                <h:outputText value="#{row.nome}" />
            </rich:column>
            <rich:column label="E-mail">
                <f:facet name="header">
                    <h:outputText value="E-mail" />
                </f:facet>
                <h:outputText value="#{row.email}" />
            </rich:column>
            <rich:column label="Credenciamento">
                <f:facet name="header">
                    <h:outputText value="Credenciamento" />
                </f:facet>
                <h:selectBooleanCheckbox value="#{row.credenciamento}" />
            </rich:column>


                <ui:param name="y" value="#{matrix.rows.indexOf(row)}" />

                <rich:columns value="#{matrix.columns}" var="col" index="x" style="text-align: center; width: 60px;">

                    <ui:param name="index" value="#{y * matrix.columns.size() + x}" />
                    <ui:param name="cell" value="#{matrix.cells[index]}" />

                    <f:facet name="header">
                        <h:outputText value="#{col.horario}" escape="true">
                            <f:convertDateTime  pattern="dd/MM/yyyy HH:mm"/>
                        </h:outputText>
                    </f:facet>
                    <h:selectBooleanCheckbox value="#{cell}" />

                </rich:columns>
            </rich:dataTable>

            <h:inputText value="#{matrix.teste}"/> 

            <h:commandButton id="salvar" value="Salvar" action="#{matrix.update()}" />          

        </a4j:form>
        </a4j:outputPanel>  
</ui:composition>

有人知道可能是什么问题吗?我正在将该页面添加到另一个页面(使用 ui:include)以添加此页面...

【问题讨论】:

    标签: java jsf richfaces richdatatable


    【解决方案1】:

    嗯,

    我正在寻找一些解决方案,但没有找到最好的方法...... 所以我使用一种解决方法解决了这个问题......

    <h:selectBooleanCheckbox value="#{cell}" name="presencasHorarios" onclick="setPresencas(#{index},this.checked)"/>
    

    然后我创建了一个这样的 js 函数:

    <a4j:jsFunction name="setPresencas" action="#{matrix.addAlteracaoPresenca()}">
                <a4j:actionparam name="param1" assignTo="#{matrix.index}"  />
                <a4j:actionparam name="param2" assignTo="#{matrix.presenca}"  />        
    </a4j:jsFunction>
    

    在另一边,我创建了一个列表......所以我传递了数组的索引和这个项目的新值......当我提交它以保持或更新时,我读取了该列表以验证哪个项目有已更改并且它的新值...为了更容易,我创建了一个传递索引和值的 HashMap ...因此,如果用户更改值 1000 次,则该值将永远是最后一个.. .

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-18
      • 1970-01-01
      • 2021-10-06
      • 1970-01-01
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 2013-07-04
      相关资源
      最近更新 更多