当前位置: 首页 > 知识库问答 >
问题:

primeface 3.2可数据incell编辑不工作

上官培
2023-03-14

我有一个带有incell编辑的数据表,它可以正确显示记录,但当我尝试编辑一行时,更改不会反映出来。以下是xhtml代码:

 <p:cellEditor>
            <f:facet name="output">
                <h:outputText value="#{scrip.companyName}"/> 
            </f:facet>
           <f:facet name="input">
               <p:inputText value="#{scrip.companyName}"/> 
            </f:facet>
            </p:cellEditor>
        </p:column>
            <p:column headerText="Exchange">
            <p:cellEditor>
            <f:facet name="output">
              <h:outputText value="#{scrip.exchange}"/> 
            </f:facet>
                <f:facet name="input">
            <p:selectOneMenu style="width: 150px" value="#{manageScrip.exchange}">
                <f:selectItem itemLabel="nse" itemValue="nse"/>
                <f:selectItem itemLabel="bse" itemValue="bse"/>                        
            </p:selectOneMenu>
                    </f:facet>
       </p:cellEditor>
        </p:column>
            <p:column headerText="Brokerage Charge">
            <p:cellEditor>
            <f:facet name="output">
           <h:outputText value="#{scrip.brokerageCharge}"/> 
            </f:facet>
           <f:facet name="input">
           <p:inputText value="#{scrip.brokerageCharge}"/> 
            </f:facet>
       </p:cellEditor>
        </p:column>

            <p:column headerText="Options">
                <p:rowEditor/>

        </p:column>

    </p:dataTable>

    </h:form>
</h:body>

以下是托管bean函数:

public void updateScrip()
{
    try{
        Integer i=(Integer)dt.getRowKey();
        String str=i.toString();
        sc=(ScripMaster) dt.getRowData(str);

        scripSymbol=sc.getScripSymbol();
        exchange=sc.getExchange();
        companyName=sc.getCompanyName();


        updateScrip(i, scripSymbol, companyName, exchange,);

      }catch(Exception ex){

        }
}

或者,我也尝试了:

public void updateScrip(RowEditEvent e)
{
    try{
        sc=(ScripMaster) e.getObject();
        scripSymbol=sc.getScripSymbol();
        exchange=sc.getExchange();
        companyName=sc.getCompanyName();
        Integer i=sc.getScripID();
        updateScrip(i, scripSymbol, companyName, exchange);
        }catch(Exception ex){
        }
}
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://java.sun.com/jsf/html" 
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:p="http://primefaces.org/ui">
<h:head>
    <title>Facelet Title</title>
</h:head>
<h:body> 
    <h:form id="frm">
        <p:commandLink action="/adminpages/addScrip" value="add scrip" ajax="false"/>
        <p:dataTable editable="true" var="scrip" value="#{manageScrip.scripList}" binding="#{manageScrip.dt}" rowKey="#{scrip.scripID}" id="dt">
            <p:ajax event="rowEdit" listener="#{manageScrip.updateScrip}" update="@this"/>
            <p:column headerText="Scrip Symbol">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{scrip.scripSymbol}"/>
                    </f:facet>
                    <f:facet name="input">
                        <p:inputText value="#{scrip.scripSymbol}"/>
                    </f:facet>
                </p:cellEditor>
            </p:column>

            <p:column headerText="Company Name">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{scrip.companyName}"/> 
                    </f:facet>
                    <f:facet name="input">
                        <p:inputText value="#{scrip.companyName}"/> 
                    </f:facet>
                </p:cellEditor>
            </p:column>
            <p:column headerText="Exchange">
                <p:cellEditor>
                   <f:facet name="output">
                      <h:outputText value="#{scrip.exchange}"/> 
                   </f:facet>
                   <f:facet name="input">
                       <p:selectOneMenu style="width: 150px" value="#{manageScrip.exchange}">
                           <f:selectItem itemLabel="nse" itemValue="nse"/>
                          <f:selectItem itemLabel="bse" itemValue="bse"/>                        
                       </p:selectOneMenu>
                   </f:facet>
                </p:cellEditor>
            </p:column>
            <p:column headerText="Brokerage Charge">
               <p:cellEditor>
                   <f:facet name="output">
                       <h:outputText value="#{scrip.brokerageCharge}"/> 
                   </f:facet>
                   <f:facet name="input">
                       <p:inputText value="#{scrip.brokerageCharge}"/> 
                   </f:facet>
               </p:cellEditor>
            </p:column>

            <p:column headerText="Options">
                <p:rowEditor/>
            </p:column>
        </p:dataTable>
    </h:form>
</h:body>

共有2个答案

孙风畔
2023-03-14

尝试使用h:inputText而不是p:inputText。

闾丘选
2023-03-14

最重要的部分是缺少可数据标签。

确保“可编辑”属性设置为true。我认为这个属性是在3.2版本中发明的,使得许多onld数据表不可编辑。

 类似资料:
  • < br >我有这段代码,其中我设计了一个< code >可编辑的JComboBox来侦听我的< code>keyPressed事件,并显示一条消息,说明键已被按下。但我不知道为什么这没用。作为初学者,我可能在逻辑上/概念上犯了错误。 因此,我想征求关于如何构建代码的建议,以使其工作。 密码

  • 这个类创建一个有6列的jtable,最后一列包含布尔复选框。我在getColumnClass中指定了它。我不能取消选中/选中这些框,它们是不可编辑的。我怀疑MyTableModel类中的setValueAt和getValueAt方法不正确,但我无法理解。请帮帮忙。这里有3个我要展示的类:带有main方法的gui类,扩展AbstractTableModel的MyTableModel和cell ren

  • 我使用的是X-editable引导版本2 我正在使用codeigniter。但是文本区域和文本框对我来说很好,但是下拉菜单不起作用。 在我看来 在我的控制器里 我刚刚测试了这个输出不工作我尝试了很多技巧,但它似乎不工作。 我想显示从表名合同的详细信息如何我可以得到的值作为一个下拉在x编辑

  • 这里需要一些帮助来消除这个错误。这是代码-#是运行出色的原始代码,我试图适应: 以下是错误消息: 文件“”,第14行,y=df.loc[df['Adj Close']] 文件"C:\用户\apros\Anaconda3\lib\site-包\熊猫\核心\indexing.py",第1424行,在getitem返回自己。_getitem_axis(maybe_callable,轴=轴) 文件“C:\

  • 为什么我不能以这种方式使用引导可编辑表? 在这个小提琴https://jsfiddle.net/aleksacavic/03agu1ex/1/它的工作原理是,当单击时,表格单元格处于编辑模式。但相同的代码在我的网站上不工作?我错过了什么?如我所见,在我这边,当单击时,单元格不允许更改类,只有表线程被突出显示,其他元素(输入字段)不被创建。谢啦

  • 问题内容: 如果我想将cq5组件设置为在A页中可编辑但在B页中不可编辑,是否可以。 例如:在A页上,我有C组件,我们允许作者打开对话框并编辑该组件。但是我们不允许作者打开对话框来编辑页面B上的组件C。我尝试研究cq:EditConfig 链接,但这还不足以解决我的问题。 问题答案: 您可以在包含之前设置ComponentContext.BYPASS_COMPONENT_HANDLING_ON_IN