【问题标题】:Calculating datatable input text value and showing result in a outputtextbox计算数据表输入文本值并在输出文本框中显示结果
【发布时间】:2014-11-21 07:00:04
【问题描述】:

我是 primefaces 的新手。我有一个问题,问题是,我在数据表中有一个输入文本框,如果我在文本框中输入任何值,则计数应显示在名为总计的输出文本框中。我没有找到任何解决方案。我的代码是

<p:dataTable id="venueNames" 
             var="test" 
             value="#{issueAdmitCardBean.venueNames}" 
             paginator="false" 
             rows="10" 
             styleClass="dataTable"                    
             rowIndexVar="index">

    <p:column headerText="Id">
        <h:outputText value="#{test.id}" />
    </p:column>

    <p:column headerText="Name Of Venue">
        <h:outputText value="#{test.name}" />
    </p:column>

    <p:column headerText="Maximum Capacity">
        <h:outputText value="#{test.capacity}" />
    </p:column>

    <p:column headerText="Allot No. of Candidates" >
        <h:inputText value="#{issueAdmitCardBean.venueNames[index].allotCandaidate}" 
                     style="width:50px;" 
                     onkeyup="doWork(#{test.capacity}, this.value);" 
                     required="true"/>
    </p:column>

    <p:column headerText="Exam Date">
        <p:calendar value="issueAdmitCardBean.examDate" 
                    pattern="dd-MM-yyyy" 
                    navigator="true" 
                    style="width:10px;"/>
    </p:column>

</p:dataTable>

我想在 datatable 之后显示总数。请给我任何建议并帮助我。在此先感谢

【问题讨论】:

  • 请帮忙解决
  • 总共是什么?您可能需要一个方法来侦听单元格编辑,并在支持 bean 中执行总计,最后使用新总计重新更新视图。
  • 我需要 issueAdmitCardBean.venueNames[index].allotCandaidate 的总数。如果用户更改分配的Candidate 的计数,我怎样才能得到我的总数

标签: jquery jsf primefaces datatable


【解决方案1】:

如果我猜对了,您希望显示所有&lt;h:inputText&gt;-Fields 的值的总和。 目前,您的代码中没有 JSF 操作(没有表单、没有提交、没有 ajax)。 你可以用 Javascript 和 jQuery 来做,或者你试试这个:

<h:form>
  <p:dataTable>
    ...
    <p:column headerText="Allot No. of Candidates" >
      <h:inputText value="#{issueAdmitCardBean.venueNames[index].allotCandaidate}"
                   ... >
        <p:ajax event="change" update="@this total" />
      </h:inputText>

    </p:column>
  <p:dataTable>

  <h:outputText id="total" value="#{issueAdmitCardBean.total}"
</h:form>

在 IssueAdmitCardBean 中:

public int getTotal(){
  int result = 0;
  for(VenueName venueName : this.venueNames){
    result += Integer.parseInt(venueName.getAllotCandaidate());
  }
  return result;
}

请注意,此示例没有异常处理,我现在无法对其进行测试。

【讨论】:

  • 它不是 fount.and 它一直显示错误
  • 您的代码中是否有 ID 为“total”的 JSF/Primefaces 组件?
  • 是的,我有。但是页面在 onchange 中没有刷新。当我刷新我的页面时,我唯一的方法一直在显示。
  • 你有ajax-tag和outputText在同一个h:form吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-07
  • 1970-01-01
  • 1970-01-01
  • 2012-06-18
  • 2013-05-17
相关资源
最近更新 更多