Как показать изображения в поиске селектора? (Не работает должным образом) - PullRequest
0 голосов
/ 03 августа 2020

Как отображать изображения в поиске селектора?

Я просмотрел этот пример и применил его в своем сценарии, но он не работает должным образом.

Здесь у меня есть вопросы: Как отображать изображения внутри поиска в селекторе?

в этом сценарии вы использовали два aspx-кода: (2 и 3 - боковые заголовки)

Для нового столбца установите для свойства Type значение Icon: Установите свойство Type для столбца ThumbnailURL на Icon:

Я очень запутался, как использовать эти два код на странице aspx, пожалуйста, поясните, как это использовать, это очень полезно, если вы дадите мне хорошее предложение

{Основная проблема в том, что RowSelecting не работает, когда я нахожусь в режиме отладки}

   #region TSHazardStatementPictogram(Current maint)

    public void Initialize()
    {
        this.RowSelecting.AddHandler<TSHazardStatementPictogram>(HazardPictogramRowSelecting);
    }

    public void HazardPictogramRowSelecting(PXCache sender, PXRowSelectingEventArgs e)
    {
        //using (new PXConnectionScope())
            
         var row = e.Row as TSHazardStatementPictogram;

        if (row != null && !string.IsNullOrEmpty(row.HSPictogram))
        {
            Guid[] files = PXNoteAttribute.GetFileNotes(sender, e.Row);
            var fm = PXGraph.CreateInstance<PX.SM.UploadFileMaintenance>();
            foreach (Guid fileID in files)
            {
                PX.SM.FileInfo fi = fm.GetFileWithNoData(fileID);
                if (fi.FullName == row.HSPictogram || fi.Name == row.HSPictogram)
                {
                    string url = $"~/Frames/GetFile.ashx?fileID={fileID}";
                    row.HSPictogram = url;

                    //row.Pictogram =
                    //    ControlHelper.GetAttachedFileUrl(null, fileID.ToString());

                    break;
                }
            }
        }
            
        //}
    }
    #endregion

И я изменил обработчик событий вот так, и здесь отладка работает, но изображение не отображается в селекторе поиска:

#region Working

    public void TSHazardStatementPictogram_RowSelecting(PXCache sender, PXRowSelectingEventArgs e, PXRowSelecting baseMethod)
    {
        baseMethod?.Invoke(sender, e);

        using (new PXConnectionScope())
        {

            var row = (TSHazardStatementPictogram)e.Row;
            if (row == null)
                return;

            //row.HSPictogram = string.IsNullOrEmpty(row.HSPictogram) ? "main@Fail" : "main@Success";

            //row.HSPictogram = @"http://www.acumatica.asia/acumaticawwwsite-acumaticainc.netdna-ssl.com/wp-content/uploads/2014/09/acumatica-2.png";

            if (row.HSPictogram != null)
            {

                TSHazardPictogram currentLineItem = PXSelect<TSHazardPictogram, Where<TSHazardPictogram.pictogram,
                       Equal<Required<TSHazardPictogram.pictogram>>>>.Select(this, row.HSPictogram);

                if (row != null && !string.IsNullOrEmpty(currentLineItem.Pictogram))
                {
                    if (currentLineItem.Pictogram != null)
                    {
                        HazardPictogramMaint hazardPictogramMaint = PXGraph.CreateInstance<HazardPictogramMaint>();
                        Guid[] files = PXNoteAttribute.GetFileNotes(hazardPictogramMaint.TSHazardPictogramView.Cache, currentLineItem);
                        var fm = PXGraph.CreateInstance<PX.SM.UploadFileMaintenance>();
                        foreach (Guid fileID in files)
                        {
                            PX.SM.FileInfo fi = fm.GetFileWithNoData(fileID);
                            if (fi.FullName == currentLineItem.Pictogram || fi.Name == currentLineItem.Pictogram)
                            {
                                ///* row.ThumbnailURL*/
                                //row/*.GetExtension<TSHazardPictogramExt>()*/.Pictogram = ControlHelper.GetAttachedFileUrl(null, fileID.ToString());
                                //break;

                                string url = $"~/Frames/GetFile.ashx?fileID={fileID}";
                                row.HSPictogram = url;
                                //row.Pictogram =
                                //    ControlHelper.GetAttachedFileUrl(null, fileID.ToString());
                                break;

                            }
                        }
                    }
                }
            }
        }
    }

    #endregion

DA C:

    #region HSPictogram
    public abstract class hSPictogram : PX.Data.BQL.BqlString.Field<hSPictogram>
    {
    }
    protected string _HSPictogram;
    [PXDBString(255, IsUnicode = true)]
    [PXUIField(DisplayName = "Pictogram")]

    //[PXMergeAttributes(Method = MergeMethod.Append)]
    [PXSelector(typeof(Search<TSHazardPictogram.pictogram>), typeof(TSHazardPictogram.hazardPictogram),
                  typeof(TSHazardPictogram.pictogram), typeof(TSHazardPictogram.hazardClass), typeof(TSHazardPictogram.hazardCategory),
                   SubstituteKey = typeof(TSHazardPictogram.pictogram)
                   /*DescriptionField = typeof(TSHazardPictogram.hazardPictogram)*/, ValidateValue = false)]

    public virtual string HSPictogram
    {
        get
        {
            return this._HSPictogram;
        }
        set
        {
            this._HSPictogram = value;
        }
    }
    #endregion

Aspx-код:

заранее спасибо

...