动态更改按钮颜色

时间:2019-05-06 13:59:45

标签: acumatica

我已将PXAction添加到自定义Graph扩展类。这将在屏幕顶部放置一个“按钮”。我想在代码中动态更改按钮的颜色。我怎样才能做到这一点?有可能吗?

我正在使用19.100.0122版

TIA!

1 个答案:

答案 0 :(得分:1)

请注意,Acumatica ISV认证计划不允许进行此类更改。

您可以使用JavaScript更改CSS样式。在自定义项目编辑器允许您执行以下操作的任何地方添加JavaScript元素: enter image description here

填写脚本属性,将其设置为启动脚本,并将以下JavaScript放入脚本属性中(您需要将“ Test”更改为Action的显示名称):

function setActionButtonColor(){  
   var x = document.getElementsByClassName("toolsBtn");
   var i;

   for (i = 0; i < x.length; i++) {
     // Replace "Test" by the display name of your action button
     if (x[i].getAttribute("data-cmd") === "Test")
        x[i].style.backgroundColor = "red";
   } 
} 

enter image description here

在DataSource ClientEvents-> CommandPerformed属性中,放置要调用的JavaScript方法的名称(setActionButtonColor): enter image description here

打开页面时,将执行JavaScript方法并更改“操作”按钮的背景颜色: enter image description here

我使用此图形扩展进行了测试:

public class SOOrderEntry_Extension : PXGraphExtension<SOOrderEntry>
{
 public PXAction<SOOrder> test;

 [PXUIField(DisplayName = "Test")]
 public virtual IEnumerable Test(PXAdapter adapter)
 {
   return adapter.Get();
 }
}