我已将PXAction添加到自定义Graph扩展类。这将在屏幕顶部放置一个“按钮”。我想在代码中动态更改按钮的颜色。我怎样才能做到这一点?有可能吗?
我正在使用19.100.0122版
TIA!
答案 0 :(得分:1)
请注意,Acumatica ISV认证计划不允许进行此类更改。
您可以使用JavaScript更改CSS样式。在自定义项目编辑器允许您执行以下操作的任何地方添加JavaScript元素:
填写脚本属性,将其设置为启动脚本,并将以下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";
}
}
在DataSource ClientEvents-> CommandPerformed属性中,放置要调用的JavaScript方法的名称(setActionButtonColor):
打开页面时,将执行JavaScript方法并更改“操作”按钮的背景颜色:
我使用此图形扩展进行了测试:
public class SOOrderEntry_Extension : PXGraphExtension<SOOrderEntry>
{
public PXAction<SOOrder> test;
[PXUIField(DisplayName = "Test")]
public virtual IEnumerable Test(PXAdapter adapter)
{
return adapter.Get();
}
}