代码之家  ›  专栏  ›  技术社区  ›  John

无法在窗体视图中显示图像

  •  0
  • John  · 技术社区  · 6 年前

    我有未绑定的字段和分配给它的文件ID,我甚至尝试分配URL也不工作,请看下面的设计和代码,请让我知道哪里做错了。

    <px:PXFormView runat="server" ID="frmImage2" DataSourceID="ds" DataMember="IconImage" SkinID="Preview">
                    <Template>
                        <px:PXLayoutRule ID="PXLayoutRule18" runat="server" StartColumn="true" />
                        <px:PXImageUploader runat="server" DataField="UsrKWJMThumbnailURL" AllowUpload="false" DataMember="IconImage" SuppressLabel="True" ID="imgViewImage12" Height="150px" Width="150px" />
                    </Template>
        </px:PXFormView>
    
         public PXSelect<AMProdItem> IconImage;
    
            public virtual void iconImage()
            {
                foreach (AMProdItem item in Base.ProdItemRecords.Select())
                {
                    AMProdItemExt extItems = item.GetExtension<AMProdItemExt>();
    
                    if (extItems != null)
                    {
                        if (extItems.UsrKWJMSerialNbr != null)
                        {
                            InfoSmartSearch.InfoINItemLotSerialImage infoItemLotSerialImg = PXSelectReadonly<InfoSmartSearch.InfoINItemLotSerialImage, Where<InfoSmartSearch.InfoINItemLotSerialImage.lotSerialNbr, Equal<Required<InfoSmartSearch.InfoINItemLotSerialImage.lotSerialNbr>>>>.Select(Base, extItems.UsrKWJMSerialNbr);
    
                            if (infoItemLotSerialImg != null)
                            {
                                if (!string.IsNullOrEmpty(infoItemLotSerialImg.UsrIconImageUrl))
                                {
                                    NoteDoc noteDoc = PXSelectReadonly<NoteDoc, Where<NoteDoc.noteID, Equal<Required<NoteDoc.noteID>>>>.Select(Base, infoItemLotSerialImg.NoteID);
    
                                    if (noteDoc != null)
                                    {
                                        UploadFile uploadFile = PXSelectReadonly<UploadFile, Where<UploadFile.fileID, Equal<Required<UploadFile.fileID>>>>.Select(Base, noteDoc.FileID);
    
                                        if (uploadFile != null)
                                        {
                                            extItems.UsrKWJMThumbnailURL =
                                               ControlHelper.GetAttachedFileUrl(null, uploadFile.FileID.ToString());
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            InventoryItem invItems = PXSelectReadonly<InventoryItem, Where<InventoryItem.inventoryID, Equal<Required<InventoryItem.inventoryID>>>>.Select(Base, item.InventoryID);
    
                            if (invItems != null)
                            {
                                if (!string.IsNullOrEmpty(invItems.ImageUrl))
                                {
                                    NoteDoc noteDoc = PXSelectReadonly<NoteDoc, Where<NoteDoc.noteID, Equal<Required<NoteDoc.noteID>>>>.Select(Base, invItems.NoteID);
    
                                    if (noteDoc != null)
                                    {
                                        UploadFile uploadFile = PXSelectReadonly<UploadFile, Where<UploadFile.fileID, Equal<Required<UploadFile.fileID>>>>.Select(Base, noteDoc.FileID);
    
                                        if (uploadFile != null)
                                        {
                                            extItems.UsrKWJMThumbnailURL =
                                              ControlHelper.GetAttachedFileUrl(null, uploadFile.FileID.ToString());
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Hugues Beauséjour    6 年前

    https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png

    enter image description here

    using System;
    using PX.Data;
    
    namespace PXImageTest
    {
      public class TestImage : PXGraph<TestImage>
      {
        public PXFilter<MasterTable> MasterView;
    
        public void MasterTable_ImageUrl_FieldSelecting(PXCache sender, PXFieldSelectingEventArgs e)
        {
            e.ReturnValue = "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png";
        }
    
        [Serializable]
        public class MasterTable : IBqlTable
        {
          public abstract class imageUrl : IBqlField { }
    
          [PXUIField(DisplayName = "Image")]
          [PXDBString(255, IsUnicode = true)]  
          public virtual String ImageUrl { get; set; }
        }
      }
    }
    

    <%@ Page Language="C#" MasterPageFile="~/MasterPages/FormView.master" AutoEventWireup="true" ValidateRequest="false" CodeFile="ZZ999999.aspx.cs" Inherits="Page_ZZ999999" Title="Untitled Page" %>
    <%@ MasterType VirtualPath="~/MasterPages/FormView.master" %>
    
    <asp:Content ID="cont1" ContentPlaceHolderID="phDS" Runat="Server">
        <px:PXDataSource ID="ds" runat="server" Visible="True" Width="100%"
            TypeName="PXImageTest.TestImage"
            PrimaryView="MasterView">
            <CallbackCommands>
            </CallbackCommands>
        </px:PXDataSource>
    </asp:Content>
    <asp:Content ID="cont2" ContentPlaceHolderID="phF" Runat="Server">
        <px:PXFormView ID="form" runat="server" DataSourceID="ds" DataMember="MasterView" Width="100%" AllowAutoHide="false">
            <Template>
                <px:PXLayoutRule runat="server" StartRow="True" ID="PXLayoutRule1" />
                <px:PXImageView runat="server" DataField="ImageUrl" ID="edImage" Style='left:9px;top:9px;Position:absolute;' />
            </Template>
            <AutoSize Container="Window" Enabled="True" MinHeight="200" ></AutoSize>
        </px:PXFormView>
    </asp:Content>