我需要显示用户上传的图片,并将其显示在网格上,如下图所示:
首先,我将PXImageUploader用于此列,但是它不起作用。我无法使用上传按钮来上传图片,只能进行拖放以及其中的一些问题。我认为这种方式不好。
然后,我使用另一种方式将图像上传到文件,从SM202510复制外部链接并粘贴到此列。可以,但是用户必须执行太多步骤才能做到这一点,这对用户来说有点复杂,因此我想找到一种自动获取图像链接并粘贴的方法。
问题是,当用户上传图像时,我找不到诸如NoteID的FieldUpdated事件来获取图像链接。
在这种情况下有什么办法吗?或者您对我有什么建议?
答案 0 :(得分:0)
对于表单容器,请使用PXImageView
控件。
对于网格容器,您可以将PXGridColumn
元素与DisplayMode
和Type
属性一起使用:
<px:PXGridColumn DataField="UsrImage" DisplayMode="Value" Type="Icon" />
用文件External Link
属性组成UID
URL,并将URL字符串分配给显示图像的字段。我测试了此方法,以显示附加到网格记录的第一张图像。
public class SOOrderEntry_Extension : PXGraphExtension<SOOrderEntry>
{
public void SOLine_UsrImage_FieldSelecting(PXCache sender, PXFieldSelectingEventArgs e)
{
PX.SM.UploadFileMaintenance upload = PXGraph.CreateInstance<PX.SM.UploadFileMaintenance>();
foreach (Guid noteId in PXNoteAttribute.GetFileNotes(sender, e.Row))
{
PX.SM.FileInfo fileInfo = upload.GetFile(noteId);
if (fileInfo != null)
{
string fileExtension = System.IO.Path.GetExtension(fileInfo.Name).ToLowerInvariant();
if (fileExtension == ".png" || fileExtension == ".jpg" || fileExtension == ".jpeg" || fileExtension == ".gif")
{
e.ReturnValue = string.Concat(PXUrl.SiteUrlWithPath(), "/Frames/GetFile.ashx?fileID=", fileInfo.UID.ToString());
break;
}
}
}
}
}