Ich habe eine Anpassung, die ein Smart Panel mit einem PXTextEdit-Feld verwendet, das zum Bearbeiten des Texts im benutzerdefinierten Feld eines Rasters verwendet wird. Mit anderen Worten, wenn eine neue (benutzerdefinierte) Aktionsschaltfläche in der Kopfzeile des Rasters angeklickt wird, wird das Smart Panel angezeigt und ermöglicht die Bearbeitung einer großen Menge an Text über das Feld PXTextEdit. Ich habe das mechanisch zur Arbeit gebracht. Das Problem ist, dass ich das möchte:So erhalten Sie Informationen in einem Smart Panel PXTextEdit-Feld
1.) Haben die PXTextEdit-Box den Text eines bestimmten benutzerdefinierten Benutzerfelds im Raster enthalten, wenn das Smart Panel öffnet.
2.) Lassen Sie den Text, der im Feld PXTextEdit des Smart Panels bearbeitet wird, in das benutzerdefinierte Benutzerfeld des Rasters übertragen, wenn Sie auf dem Smart Panel auf die Schaltfläche OK klicken.
Ich habe keine Ahnung, wie Sie den Text in das PXTextEdit-Feld des Smart Panels mithilfe der Business-Logik für die Graphenerweiterung hinein- oder herausholen.
Hier ist mein Code so weit:
public class SOOrderEntryExt : PXGraphExtension<SOOrderEntry>
{
public PXSelect<SOLine,
Where<SOLine.orderType, Equal<Current<SOLine.orderType>>,
And<SOLine.orderNbr, Equal<Current<SOLine.orderNbr>>,
And<SOLine.lineNbr, Equal<Current<SOLine.lineNbr>>>>>> MyPanelView;
public PXAction<SOOrder> noteAction;
[PXUIField(DisplayName = "Add Note", MapViewRights = PXCacheRights.Select, MapEnableRights = PXCacheRights.Update)]
[PXButton(ImageKey = PX.Web.UI.Sprite.Main.DataEntryF)]
protected virtual IEnumerable NoteAction(PXAdapter adapter)
{
if (Base.Transactions.Current != null &&
MyPanelView.AskExt() == WebDialogResult.OK)
{
//extra stuff here if needed when OK is pushed
}
return adapter.Get();
}
}
Hier ist der aspx-Code für das Panel ist:
<px:PXSmartPanel runat="server" ID="PXSmartPanelNote" DesignView="Hidden" LoadOnDemand="true" CreateOnDemand="false" CaptionVisible="true" Caption="Order Notes" Key="MyPanelView" AcceptButtonID="btnMyNoteOk">
<px:PXFormView runat="server" ID="formMyNote" CaptionVisible="False" Width="100%" DataSourceID="ds" DataMember="MyPanelView">
<Template>
<px:PXLayoutRule runat="server" ID="PXLayoutRule44" StartColumn="True" LabelsWidth="S" ControlSize="XL" />
<px:PXTextEdit runat="server" TextMode="MultiLine" DataField="Note" ID="cstNote" Width="400" Height="400" />
</Template>
</px:PXFormView>
<px:PXPanel runat="server" ID="PXPanel10" SkinID="Buttons">
<px:PXButton runat="server" ID="btnMyNoteOk" Text="OK" DialogResult="OK" />
</px:PXPanel>
</px:PXSmartPanel>
ich auch den Rückruf Befehl hinzugefügt haben:
<px:PXDSCallbackCommand CommitChanges="true" Name="NoteAction" Visible="False" DependOnGrid="grid" /></CallbackCommands>
und die Grid-Header-Schaltfläche zum Öffnen des Smart Panels:
<px:PXToolBarButton Text="Add Note" DependOnGrid="grid">
<AutoCallBack Command="NoteAction" Target="ds" /></px:PXToolBarButton>
Können Sie den Code aspx der Platte zeigen? –
Ich habe das zu der Frage hinzugefügt - siehe oben – pmfith
Sieht so aus, als sollte es gut so funktionieren. –