2016-09-14 11 views
0

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> 
+0

Können Sie den Code aspx der Platte zeigen? –

+0

Ich habe das zu der Frage hinzugefügt - siehe oben – pmfith

+0

Sieht so aus, als sollte es gut so funktionieren. –

Antwort

1

Ich denke, dass Ihr DataField-Name falsch ist. Sie möchten "UsrNote" und nicht das vorhandene "Notiz" -Feld in Ihrem Smartpanel verwenden.

DataField="UsrNote" 

dies wird auf die Original-Beitrag wurden Sie hatten die folgenden für Ihr Feld Sie versuchen, mit zu arbeiten ...

#region UsrNote 
[PXDBString(4000, IsUnicode = true, InputMask = "")] 
[PXUIField(DisplayName = "Note")] 
public virtual string UsrNote { get; set; } 
public class usrNote : PX.Data.IBqlField { } 
#endregion 
+0

Ich konnte testen und bestätigen, das DataField in UsrNote zu ändern und den Code, den Sie haben, in das Programm zu integrieren. Ich habe das Feld zum Gitter hinzugefügt und was im Panel aktualisiert wurde, zeigt auch aktualisiert auf dem Gitter (und dasselbe in umgekehrter Reihenfolge). Hoffe das hilft. – Brendan

Verwandte Themen