acumatica 中的“hello world”按钮不起作用

问题描述 投票:0回答:1

这是我的代码。它在客户屏幕上添加了一个按钮,该按钮会发出呼叫,但会得到此响应,

0|<ctl00_phF_BAccount_t0_btnHelloWorld />

AR303000页面aspx

<px:PXFormView ID="BAccount" runat="server" Width="100%" Caption="Customer Summary" DataMember="BAccount" NoteIndicator="True" FilesIndicator="True" ActivityIndicator="false" ActivityField="NoteActivity" LinkIndicator="true" BPEventsIndicator="true" DefaultControlID="edAcctCD">
<Template>
  <px:PXLayoutRule runat="server" StartColumn="True" ControlSize="XM" LabelsWidth="SM" ></px:PXLayoutRule>
    <px:PXButton runat="server" Text="Hello World" AutoCallBack="True" ID="btnHelloWorld">
 <AutoCallBack Command="HelloWorld" /></px:PXButton>
 <px:PXSegmentMask ID="edAcctCD" runat="server" DataField="AcctCD" FilterByAllFields="True" ></px:PXSegmentMask>
 <px:PXDropDown ID="edStatus" runat="server" DataField="Status" CommitChanges="True" ></px:PXDropDown>

在同一个定制项目的代码中

using PX.Data;
using PX.Objects.AR; // for CustomerMaint graph
using PX.Objects.CR; // for BAccount DAC

public class CustomerMaint_Extension : PXGraphExtension<CustomerMaint>
{
    // Define the action matching the button we will create
    public PXAction<BAccount> HelloWorld;

    [PXButton] // Indicates this is a button action
    [PXUIField(DisplayName = "Hello World")] // Label for the button/action
    protected void helloWorld()
    {
        // If this code runs, it will throw an exception and show a popup error in the UI.
        throw new PXException("Hello world from the server!");
    }
}

为什么我没有收到返回的错误消息? 我的回报是这样的

0|<ctl00_phF_BAccount_t0_btnHelloWorld />

它向服务器发送回调,但返回结果并不符合预期,因为我认为我的代码没有被命中。 任何建议。 从长远来看,我想通过按钮来填充字段值。 但从这里开始只是让按钮发挥作用。

acumatica
1个回答
0
投票

您需要在操作中使用

Customer
DAC,因为它是
CustomerMaint
图中的主要DAC:

public PXAction<Customer> HelloWorld;
© www.soinside.com 2019 - 2024. All rights reserved.