为网格创建预览窗格

时间:2015-07-03 06:14:06

标签: acumatica

我想在选项卡上的自定义网格下方创建一个预览窗格,与其他地方相同,当我选择任何一行时,它会在网格下方显示预览。

我正在使用

  

PXGridWithPreview

包括

  

PreviewPanelTemplate

但是,它给了我以下错误

  

查看AcumaticaActivities $预览不存在

我不确定是否需要进行任何设置。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

尝试将PXPreviewAttribute添加到所选视图。

[PXPreview(typeof(TPrimaryView), typeof(TDacForPreview))]
public PXSelect<TPrimaryView,... AcumaticaActivities;

答案 1 :(得分:0)

以下是样本:

图表代码

public class SOPreview : PXGraph<SOPreview>
{
    public PXCancel<SOOrder> Cancel;

    [PXFilterable]
    [PXPreview(typeof(SOOrder))]
    public PXSelectJoin<SOOrder, LeftJoin<SOLine, 
        On<SOOrder.orderType, Equal<SOLine.orderType>,
            And<SOOrder.orderNbr, Equal<SOLine.orderNbr>>>>> Orders;

    public PXSelect<SOOrder,
        Where<SOOrder.orderType, Equal<Current<SOOrder.orderType>>,
            And<SOOrder.orderNbr, Equal<Current<SOOrder.orderNbr>>>>> Orders2;

    public PXAction<SOOrder> View;
    [PXUIField(DisplayName="View")]
    [PXButton]
    protected virtual IEnumerable view(PXAdapter a)
    {
        Orders2.AskExt();
        return a.Get();
    }
}

ASPX标记

<%@ Page Language="C#" MasterPageFile="~/MasterPages/ListView.master" AutoEventWireup="true" ValidateRequest="false" CodeFile="C9101000.aspx.cs" Inherits="Page_C9101000" Title="Untitled Page" %>
<%@ MasterType VirtualPath="~/MasterPages/ListView.master" %>
<asp:Content ID="cont1" ContentPlaceHolderID="phDS" runat="Server">
        <px:PXDataSource ID="ds" runat="server" Visible="True" Width="100%" PrimaryView="Orders" TypeName="GridWithPreview.SOPreview">
        </px:PXDataSource>
        <px:PXSmartPanel ID="pnlSODetail" runat="server" Style="z-index: 108;"
            Caption="Sales Order Details" CaptionVisible="True"
            Key="Orders2" ShowAfterLoad="false"
            AutoRepaint="true"
            AcceptButtonID="PXButtonOK">
            <px:PXFormView ID="frmSO" runat="server" DataSourceID="ds" DataMember="Orders2" Width="100%"
                Style="z-index: 100" TabIndex="17100">
                <Template>
                    <px:PXLayoutRule runat="server" StartRow="True">
                    </px:PXLayoutRule>
                    <px:PXTextEdit ID="PXTextEdit1" runat="server" DataField="OrderType" Enabled="false">
                    </px:PXTextEdit>
                    <px:PXTextEdit ID="PXTextEdit2" runat="server" DataField="OrderNbr" Enabled="false">
                    </px:PXTextEdit>
                    <px:PXTextEdit ID="PXTextEdit3" runat="server" DataField="CustomerID" Enabled="false">
                    </px:PXTextEdit>
                    <px:PXTextEdit ID="PXTextEdit4" runat="server" DataField="OrderDesc" Enabled="false">
                    </px:PXTextEdit>
                </Template>
            </px:PXFormView>
            <px:PXPanel ID="PXPanel1" runat="server" SkinID="Buttons">
                <px:PXButton ID="pxBtnOK" runat="server" DialogResult="OK" Text="Close" />
            </px:PXPanel>
        </px:PXSmartPanel>
    </asp:Content>
    <asp:Content ID="cont2" ContentPlaceHolderID="phL" runat="Server">
        <pxa:PXGridWithPreview ID="grid" runat="server" Height="400px" Width="100%" Style="z-index: 100"
            AllowPaging="True" AllowSearch="True" DataSourceID="ds" TabIndex="100"
            GridSkinID="Inquire"
            PreviewPanelStyle="z-index: 100; background-color: Window"
            PreviewPanelSkinID="Preview">
            <Levels>
                <px:PXGridLevel DataKeyNames="OrderType,OrderNbr" DataMember="Orders">
                    <Columns>
                        <px:PXGridColumn DataField="OrderType">
                        </px:PXGridColumn>
                        <px:PXGridColumn DataField="OrderNbr">
                        </px:PXGridColumn>
                        <px:PXGridColumn DataField="CustomerID" Width="120px">
                        </px:PXGridColumn>
                        <px:PXGridColumn DataField="OrderDate" Width="90px">
                        </px:PXGridColumn>
                        <px:PXGridColumn DataField="Status">
                        </px:PXGridColumn>
                        <px:PXGridColumn DataField="OrderDesc" Width="200px">
                        </px:PXGridColumn>
                    </Columns>
                </px:PXGridLevel>
            </Levels>
            <AutoSize Container="Window" Enabled="True" MinHeight="200" />
            <PreviewPanelTemplate>
                <px:PXHtmlView ID="edPreviewCtrl" runat="server" DataField="OrderDesc" TextMode="MultiLine" MaxLength="50" Width="100%" Height="100px" SkinID="Label">
                    <AutoSize Container="Parent" Enabled="true"></AutoSize>
                </px:PXHtmlView>
            </PreviewPanelTemplate>
            <GridMode AllowAddNew="False" AllowDelete="False" />
        </pxa:PXGridWithPreview>
    </asp:Content>