按 OK 时智能面板重新打开

Smart panel reopen when press OK

我有一个智能面板,当我按下 OK 按钮然后面板关闭并再次打开时。我在做什么? 请在下面找到我的弹出面板 OK C# 和弹出 html。

// Popup open code.
public PXAction<MyDAC> openPopup;
    [PXUIField(DisplayName = "Add", MapEnableRights = PXCacheRights.Select)]
    //[PXInsertButton]
    protected virtual IEnumerable OpenPopup(PXAdapter adapter) {
        
        if(CauseSmartPanel.AskExt() == WebDialogResult.OK) {
        }
        return adapter.Get();
    }

public PXAction<MyDAC> addEditOK;
        [PXUIField(DisplayName = "", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select, Visible = false)]
        public virtual IEnumerable AddEditOK(PXAdapter adapter) {
            
            return adapter.Get();
        }

<px:PXSmartPanel ID="pnlSmartCause" runat="server" CaptionVisible="True" Caption="My Smart Panel"
   Style="position: static" LoadOnDemand="True" Key="CauseSmartPanel" AutoCallBack-Target="frmMyCommand"
   AutoCallBack-Command="Refresh" DesignView="Content">
   <px:PXFormView ID="frmMyCommand" runat="server" SkinID="Transparent" DataMember="CauseSmartPanel" DataSourceID="ds" EmailingGraph="">
      <Template>
         <px:PXLayoutRule runat="server" StartRow="true" ControlSize="M" LabelsWidth="SM" StartColumn="True" />
         <px:PXSelector ID="edCauseId" CommitChanges="true" runat="server" AlreadyLocalized="False" DataField="CauseId" AutoRefresh="true">
         </px:PXSelector>
         <px:PXLayoutRule runat="server" StartRow="true" ControlSize="XM" LabelsWidth="SM" StartColumn="True" />
         <px:PXRichTextEdit ID="edDesc" runat="server" AlreadyLocalized="False" DataField="Description">
         </px:PXRichTextEdit>
         <px:PXLayoutRule runat="server" StartRow="true" StartColumn="True" ControlSize="SM" LabelsWidth="M"></px:PXLayoutRule>
         <px:PXSelector ID="edEditedBy" runat="server" AlreadyLocalized="False" DataField="EditedBy" AutoRefresh="true">
         </px:PXSelector>
         <px:PXPanel ID="PXPanel1" runat="server" SkinID="Buttons">
            <px:PXButton ID="btnMyCommandOK" CommandSourceID="ds" CommandName="AddEditOK"  SyncVisible="false" Text="OK" DialogResult="OK" runat="server"></px:PXButton>
            <px:PXButton ID="btnMyCommandCancel" runat="server" DialogResult="Cancel" Text="Cancel" />
         </px:PXPanel>
      </Template>
   </px:PXFormView>
</px:PXSmartPanel>

不知道为什么您的弹出窗口会第二次加载,但也许作为一种解决方法,您可以考虑检查用户是否已经对弹出窗口提供了答案。 这是通过在视图上使用 Answer 属性 来完成的。在你的情况下,它可能是这样的:

if (CauseSmartPanel.View.Answer == WebDialogResult.None)
{
    if(CauseSmartPanel.AskExt() == WebDialogResult.OK) {
    }
}