如何清除p:dataTable中的所有输入字段? [英] How to clear all input fields in p:dataTable?

查看:104
本文介绍了如何清除p:dataTable中的所有输入字段?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在将JSF 2.0与PrimeFaces一起使用.我有一个<p:dataTable>.我在列中有一个<p:inputText>.我可以编辑并保存它.我也有一个重置按钮,但是它不起作用.

I am using JSF 2.0 with PrimeFaces. I have a <p:dataTable>. I have a <p:inputText> in a column. I can edit and save it. I have also a reset button, but it is not working.

<h:form id="f">
    <f:facet name="head">Enteri Karbon Hesaplaması</f:facet>
    <p:dataTable value="#{orderBean.orderList}" var="o" id="bir">
        <p:column>
            <f:facet name="header">Hayvan Adi</f:facet>
            <h:outputText value="#{o.hayvanadi}"/>
        </p:column>
        <p:column>
            <f:facet name="header">Karbon Salinimi Değeri</f:facet>
            <h:outputText value="#{o.karbonsalinimi}"/>
        </p:column>
        <p:column>
            <f:facet name="header">Adet</f:facet>
            <p:inputText id="spinner"  maxlength="12" value="#{o.adet}"/>
        </p:column>
    </p:dataTable>
    <p:commandButton value="Kaydet"  action="#{orderBean.saveAction()}" update="bir"/>
    <p:commandButton value="Temizle"  update="bir" process="@this" actionListener="#{orderBean.reset}"/>
</h:form>

这是我的后备豆的相关部分:

Here is the relevant part of my backing bean:

@ManagedBean
@SessionScoped
public class OrderBean {
    private static final ArrayList<Order> orderList = 
        new ArrayList<Order>(Arrays.asList(
            new Order("Süt İneği", 99 , 0),             
            new Order("Diğer İnekler", 58, 0),      
            new Order("Koyun",5, 0),
            new Order("Keçi",5, 0),     
            new Order("At ",18, 0),     
            new Order("Eşek ",10, 0)                
        )
    );

    public String saveAction() {
        for (Order order : orderList){
            order.setEditable(false);
        }

        return null;
    }

    public String editAction(Order order) {
        order.setEditable(true);
        return null;
    }

    public void reset() {  
        RequestContext.getCurrentInstance().reset("form:f");  
    }  

    // ...
}

推荐答案

更改命令按钮的类型以进行重置,即:

Change the type of your command button to reset ie:

<p:commandButton type="reset" value="Temizle"  update="bir" process="@this" actionListener="#{orderBean.reset}"/>

此外,由于您基本上是在尝试使数据表再次为空,因此您只需在重置函数中将orderList设置为空列表即可.

Also, since you are basically trying to make the datatable empty again you can just set orderList to an empty list in the reset function.

这篇关于如何清除p:dataTable中的所有输入字段?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆