【问题标题】:Acumatica - Grid in PXTabItem on PXSmartPanel Not Appearing on ScreenAcumatica - PXSmartPanel 上 PXTabItem 中的网格未出现在屏幕上
【发布时间】:2021-10-09 01:49:17
【问题描述】:

我在 Acumatica ERP (v21.109.0018) 的销售订单表单 (SO301000) 上有一个 PXSmartPanel。在PXSmartPanel 中,我有一个PXTab 和两个PXTabItem。每个选项卡项中都有一个PXGrid

每当智能面板打开时,第一个选项卡项中的网格都会显示正确的数据。但是当我选择另一个选项卡项时,网格根本不显示(没有数据,没有列名,没有工具栏操作)。我不确定是否缺少某个属性,但我们将不胜感激。

这是我的PXSmartPanel 的 ASPX 代码。 ID 为“GridKitNonStkComponents”的网格没有显示:

<px:PXSmartPanel runat="server" ID="KitComponentsPanel" DesignView="Content" AllowResize="true" 
    AcceptButtonID="KitComponentSaveButton" CancelButtonID="KitComponentCancelButton" LoadOnDemand="true"
    CaptionVisible="true" Caption="Kit Component Items" Key="KitComponentsPanel"
    AutoRepaint="true" style="position:static;" Height="400px" Width="560px">
    <px:PXTab ID="kitCompTab" runat="server" Width="100%" Height="85%">
        <Items>
            <px:PXTabItem Text="Stock Components">
                <Template>
                    <px:PXGrid runat="server" ID="GridKitStkComponents" Height="100%" Width="100%" SyncPosition="true">
                        <Levels>
                            <px:PXGridLevel DataMember="KitStkComponents">
                                <Columns>
                                    <px:PXGridColumn DataField="CompInventoryID" Width="70" CommitChanges="True" />
                                    <px:PXGridColumn DataField="CompDescription" Width="280" />
                                    <px:PXGridColumn DataField="ComponentQty" />
                                </Columns>
                            </px:PXGridLevel>
                        </Levels>
                        <ActionBar Position="Top">
                            <Actions>
                                <AddNew MenuVisible="True" />
                                <Save MenuVisible="False" Enabled="False" />
                                <Search MenuVisible="False" Enabled="False" />
                                <NoteShow Enabled="False" MenuVisible="False" />
                                <Refresh MenuVisible="True" />
                                <Delete MenuVisible="True" />
                                <AdjustColumns MenuVisible="True" />
                                <ExportExcel MenuVisible="True" />
                            </Actions>
                            <CustomItems>
                                <px:PXToolBarButton>
                                    <AutoCallBack Command="ResetStkCompsToDefault" Target="ds">
                                        <Behavior CommitChanges="true" />
                                    </AutoCallBack>
                                </px:PXToolBarButton>
                            </CustomItems>
                        </ActionBar>
                        <AutoSize Enabled="true" />
                    </px:PXGrid>
                </Template>
            </px:PXTabItem>
            <px:PXTabItem Text="Non-Stock Components" LoadOnDemand="true">
                <Template>
                    <px:PXGrid runat="server" ID="GridKitNonStkComponents" Height="100%" Width="100%" SyncPosition="true">
                        <Levels>
                            <px:PXGridLevel DataMember="KitNonStkComponents">
                                <Columns>
                                    <px:PXGridColumn DataField="CompInventoryID" Width="70" CommitChanges="True" />
                                    <px:PXGridColumn DataField="CompDescription" Width="280" />
                                    <px:PXGridColumn DataField="ComponentQty" />
                                </Columns>
                            </px:PXGridLevel>
                        </Levels>
                        <ActionBar Position="Top">
                            <Actions>
                                <AddNew MenuVisible="True" />
                                <Save MenuVisible="False" Enabled="False" />
                                <Search MenuVisible="False" Enabled="False" />
                                <NoteShow Enabled="False" MenuVisible="False" />
                                <Refresh MenuVisible="True" />
                                <Delete MenuVisible="True" />
                                <AdjustColumns MenuVisible="True" />
                                <ExportExcel MenuVisible="True" />
                            </Actions>
                            <CustomItems>
                                <px:PXToolBarButton>
                                    <AutoCallBack Command="ResetNonStkCompsToDefault" Target="ds">
                                        <Behavior CommitChanges="true" />
                                    </AutoCallBack>
                                </px:PXToolBarButton>
                            </CustomItems>
                        </ActionBar>
                        <AutoSize Enabled="true" />
                    </px:PXGrid>
                </Template>
            </px:PXTabItem>
        </Items>
    </px:PXTab>
    
    <px:PXPanel ID="KitComponentButtonPanel" runat="server" SkinID="Buttons">
        <px:PXButton ID="KitComponentSaveButton" runat="server" DialogResult="OK" Text="Save" />
        <px:PXButton ID="KitComponentCancelButton" runat="server" DialogResult="Cancel" Text="Cancel" />
    </px:PXPanel>
</px:PXSmartPanel>

这是我的图形扩展的代码(目前,EditKitComponents 操作只是打开智能面板):

    public class SOOrderEntry_Extension : PXGraphExtension<SOOrderEntry>
    {
        public static bool IsActive() => true;

        #region Selects / Views

        public SelectFrom<SOLineKitComponent>.
                Where<SOLineKitComponent.soOrderType.IsEqual<SOLine.orderType.FromCurrent>.
                    And<SOLineKitComponent.soOrderNbr.IsEqual<SOLine.orderNbr.FromCurrent>>.
                    And<SOLineKitComponent.soLineNbr.IsEqual<SOLine.lineNbr.FromCurrent>>.
                    And<SOLineKitComponent.kitInventoryID.IsEqual<SOLine.inventoryID.FromCurrent>>.
                    And<SOLineKitComponent.stkItem.IsEqual<True>>>.View KitStkComponents;

        public SelectFrom<SOLineKitComponent>.
                Where<SOLineKitComponent.soOrderType.IsEqual<SOLine.orderType.FromCurrent>.
                    And<SOLineKitComponent.soOrderNbr.IsEqual<SOLine.orderNbr.FromCurrent>>.
                    And<SOLineKitComponent.soLineNbr.IsEqual<SOLine.lineNbr.FromCurrent>>.
                    And<SOLineKitComponent.kitInventoryID.IsEqual<SOLine.inventoryID.FromCurrent>>.
                    And<SOLineKitComponent.stkItem.IsEqual<False>>>.View KitNonStkComponents;

        public SelectFrom<SOOrder>.View KitComponentsPanel;

        #endregion

        #region Actions

        public PXAction<SOOrder> EditKitComponents;
        [PXButton]
        [PXUIField(DisplayName = "Edit Kit Components")]
        public virtual void editKitComponents()
        {
            if(KitComponentsPanel.AskExt() == WebDialogResult.OK)
            {

            }
        }

        #endregion
    }

    

这是选择不同选项卡项时智能面板的外观:

Tab Item with Grid Showing

Tab Item with Grid Not Showing

【问题讨论】:

  • 能否将您的 PXGraphExtension 代码添加到问题中?
  • 是的,@SamvelPetrosov。我已经添加了 PXGraphExtension。
  • 尝试切换标签内容,是否总是第二个标签的内容为空?
  • 也尝试在第二个标签上使用属性 LoadOnDemand="false"

标签: acumatica acumatica-kb


【解决方案1】:

您需要将 "LoadOnDemand" 设置为 false 以使整个 PXSmartPanel 使第二个选项卡正常工作。

<px:PXSmartPanel runat="server" ID="KitComponentsPanel"
...
LoadOnDemand="False"
...
>

我还会考虑将第二个选项卡的 LoadOnDemand 设置为 false。

<px:PXTabItem Text="Non-Stock Components" LoadOnDemand="false">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-16
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多