创建一个通用弹出面板

时间:2018-07-16 18:57:19

标签: acumatica

我用以下代码添加了一个全局按钮。

 public override void Initialize()
        {
            if (!String.IsNullOrEmpty(Base.PrimaryView))
            {

                Type primaryViewItemType = Base.Views[Base.PrimaryView].Cache.GetItemType();
                PXAction action = PXNamedAction.AddAction(Base, primaryViewItemType, "SubmitTicket", "Submit Ticket", TestClick);
            }
        }

        public IEnumerable TestClick(PXAdapter adapter)
        {
            throw new PXException("Button clicked from graph" + Base.GetType().Name);
        }

它在每个页面中都呈现这样的按钮。 enter image description here

现在,我想在按钮的单击上显示一个弹出面板。我知道我可以在屏幕部分创建一个弹出面板。但是,是否可以通过某种方式在一个地方创建一个常规弹出面板,并且可以将其显示在按钮单击的每个页面上?

谢谢。

2 个答案:

答案 0 :(得分:1)

正如@HB_ACUMATICA提到的那样,没有简单的好方法。

为他的帖子提供另一种选择,您可以调用以下命令来创建图形并将其用作可重复使用的弹出窗口:

throw new PXPopupRedirectException(graph, string.Empty, true)

我碰到的一件事是弹出窗口上的尺寸问题...

Changing the height/width when calling another graph as an in-page popup using PXPopupRedirectException

如果您确实复制并粘贴了PXSmartPanel,则可以通过实现本帮助中提供的可重用业务逻辑模式作为起点来创建可重用业务逻辑:

Reusing Business Logic

答案 1 :(得分:0)

如果我理解正确,则希望在不同页面中共享同一PXSmartPanel控件,而不必在每个屏幕中复制/粘贴它。

在Acumatica Framework中,这是通过自定义容器控件(例如“ PXUploadDialog”)实现的,该控件从其他控件(例如“ PXSmartPanel”)派生了功能。这是在所有屏幕上附加文件时使用的控件。

不幸的是,似乎没有有关如何实现此目标的文档。 我找到的最接近的是这个基本没有答案的问题: Create custom User Control for Acumatica

考虑到这一点,您可能要在所有屏幕中复制/粘贴相同的智能面板。 为了简化复制,您可以使用“编辑ASPX”功能,请确保您之前备份了项目。

编辑ASPX以获取代码: enter image description here

将您的智能面板复制粘贴到页面中,然后单击“ GENERATE CUSTOMIZATION SCRIPT”以将更改打包到项目中: enter image description here

相关问题