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

无法通过p:DataTable中的p:ContextMenu将对象传递给托管bean

郭皓
2023-03-14
<p:dataTable id="#{id}" var="order" rowIndexVar="rowId" value="#{ordersProvider}" emptyMessage="No more rows" rowKey="#{id}" selectionMode="single">
    <p:column headerText="№" filterBy="#{order.id}" filterMatchMode="contains">
        <div style="text-align: center;">
            <h:outputText value="#{order.id}"/>
        </div>
    </p:column>
    <p:column headerText="№ on site" filterBy="#{order.noticeNumber}" filterMatchMode="contains">
        <div style="text-align: center;">

                <h:outputText value="#{order.noticeNumber}" />
                <f:param name="searchString" value="#{order.noticeNumber}" />
        </div>
    </p:column>
    <p:column headerText="Company" filterBy="#{order.customerName}" filterMatchMode="contains">
        <div style="text-align: center;">
            <h:outputText value="#{order.customerName}"/>
        </div>
    </p:column>
    <p:column id="col">
        <f:facet name="header">
            <p:contextMenu for="#{id}">
                <p:menuitem value="Delete" update="#{id}" icon="ui-icon-close" action="#{clientOrdersBean.cancel(order)}"/>
            </p:contextMenu>
        </f:facet>
    </p:column>
</p:dataTable>
    public void cancel(OrderBG order){

    order.setStatus(OrderStatus.Canceled);
    Environment.getInstance().getServiceProvider().getOrderBgService().save(order);
}

共有1个答案

景安翔
2023-03-14

问题已由getter和setter成功解决。

在托管bean中:

private OrderBG newOrder = new OrderBG();

public OrderBG getNewOrder() {
    return newOrder;
}

public void setNewOrder(OrderBG newOrder) {
    this.newOrder = newOrder;
}

public void cancel(){

    getNewOrder().setStatus(OrderStatus.Canceled);
    Environment.getInstance().getServiceProvider().getOrderBgService().save(getNewOrder());
}

在xhtml UI中:

    <p:contextMenu for="#{id}">
    <p:menuitem value="Delete" update="#{id}" icon="ui-icon-close" actionListener="#{clientOrdersBean.cancel}"/>
</p:contextMenu>

<p:dataTable id="#{id}" var="order" value="#{ordersProvider}" emptyMessage="Заявки отсутствуют" rowKey="#{id}" selection="#{clientOrdersBean.newOrder}" selectionMode="single">
 类似资料:
  • 问题内容: 我想知道是否有可能使用jQuery AJAX函数将数组传递给php函数。我有以下作为我的JavaScript 当我尝试执行以下操作时 我在PHP中将其作为“数组”接收。如何正确发送对象,以便PHP函数可以使用它? 问题答案: 从第二个ajax中,您可以根据属性名称访问数据,例如: 是在php中以关联数组转换的js对象

  • 问题内容: 请移至第二次更新。 我不想更改此问题的先前上下文。 我正在使用Java应用程序中的wkhtmltoimage。 使用它的标准方法是- 。 根据他们的文档,如果我们编写一个URL而不是输入URL,则输入将转换为STDIN。 我正在使用- 现在,我无法弄清楚如何将输入流传输到此过程。 我有一个读入的模板文件,并在末尾附加了一个字符串: 如何通过管道传递到流程的? 更新- 遵循Andrzej

  • 问题内容: 我在php中有对象,每个对象代表一个“项目”以及与之相关的所有信息。 当用户浏览页面时,这些对象应传递给javascript。理想情况下,镜像相同的结构,因此我可以使用Raphael在我的网站上将每个项目及其信息显示为单独的形状。 但是,如何将对象从php转换为javascript? 问题答案: 您可以将PHP对象转换为数组,然后使用JSON函数对其进行编码。之后,从JavaScrip

  • 问题内容: 我很难将Flask / Python变量传递给Javascript。 基本上,我是从MySQL导入的,并尝试以三种不同的方式呈现返回值。 那是我的dict项目上运行以下命令时的输出。 此方法不好,但是我添加了详细信息,根本不是正确的格式。 我直接将python dict传递给看起来像这样的模板 然后在模板方面,我尝试了以下JavaScript行 没有一个可以一起工作或单独工作。 我也尝

  • 问题内容: 我试图使用PendingIntent将自定义的序列化对象从我的IntentService传递到BroadcastReceiver。 这是我的自定义对象: 行.java 这是我的IntentService MyIntentService.java MainActivity.java 这是我的BroadcastReceiver: AlarmReceiver.java 最烦人的部分是该代码以

  • 问题内容: 这里有角的新手。我试图找出将对象传递给指令时出了什么问题。 这是我的指令: 这是我调用指令的模板: 是一组对象。 当我运行此,日志,而日志罚款的范围,甚至有一个与所有的数据,我找孩子。 我不确定我在这里做错了什么,因为这种确切的方法以前对我有用。 编辑: 我已经用所有必需的代码创建了一个插件:http ://plnkr.co/edit/uJCxrG 如您所见,该作用域在范围中可用,但我