Умная панель снова открывается при нажатии ОК - PullRequest
1 голос
/ 06 августа 2020

У меня умная панель, когда я нажимаю кнопку ОК, панель закрывается и снова открывается. что я делаю? Пожалуйста, найдите мою всплывающую панель ОК 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>

1 Ответ

0 голосов
/ 12 августа 2020

Понятия не имею, почему ваше всплывающее окно загружается второй раз, но, возможно, в качестве обходного пути вы могли бы подумать о проверке, предоставил ли пользователь уже ответ на всплывающее окно. Это делается с помощью свойства Answer в представлении. В вашем случае это может быть примерно так:

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

               
...