按 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) {
}
}
我有一个智能面板,当我按下 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) {
}
}