Создать панель предварительного просмотра для сетки

Я хочу создать панель предварительного просмотра под моей настраиваемой сеткой на вкладке, так же, как и в других местах, она показывает предварительный просмотр под сеткой, когда я выбираю любую строку.

Я использую

PXGridWithPreview

И включены

PreviewPanelTemplate

Но это дает мне ошибку ниже

Просмотреть AcumaticaActivities $ Предварительный просмотр не существует

Я не уверен, нужно ли мне делать какие-либо настройки. Какие-либо предложения?


person Krunal    schedule 03.07.2015    source источник


Ответы (2)


Попробуйте добавить PXPreviewAttribute к выбранному представлению.

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

person Roman Iskanderov    schedule 16.07.2015
comment
Спасибо Роман. По крайней мере, теперь ошибка исчезла. Но панель предварительного просмотра не отображает никаких данных, когда я выбираю соответствующую строку в сетке. Нужно ли мне устанавливать какое-либо свойство или писать для него код? - person Krunal; 17.07.2015

Вот образец:

Код графика

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>
person Nayan Mansinha    schedule 30.07.2015
comment
Я по-прежнему не вижу текст на панели предварительного просмотра. Я написал код, как указано выше. Не уверен, что я все еще что-то упускаю. - person Krunal; 07.12.2017