在屏幕AP302000上,将文本添加到网格的背面

时间:2019-05-09 20:37:36

标签: acumatica acumatica-kb

我想知道是否可以在网格后面输入文本

Here example

谢谢大家,能否告诉我是否可以添加文字?

1 个答案:

答案 0 :(得分:0)

是的,您可以这样做。该功能称为StatusField

要使用它,您需要在DAC中定义一个PXString类型的DAC字段,该字段以网格详细信息为界。此字段将保留显示在网格页脚中的文本值,并且可以针对网格中选择的每个记录进行更改。

在ASPX页面中,您需要将网格控件上的StatusField属性设置为您添加的PXString DAC字段的名称(例如:Availability):

<px:PXGrid ID="grid" runat="server" DataSourceID="ds" StatusField="Availability">

要填充DAC字段的值,可以使用FieldSelecting事件:

public virtual void SOLine_Availability_FieldSelecting(PXCache sender, PXFieldSelectingEventArgs e)
{
    // Set text that appear in footer
    e.ReturnValue = "Text to be displayed in grid footer.";
}

编辑:

要添加链接控件而不是文本块,您需要使用JavaScript。 请注意,Acumatica ISV认证计划可能不允许进行此类更改。

如果您需要了解如何向Acumatica网页添加JavaScript,可以参考以下答案: https://stackoverflow.com/a/56008485/7376238

对于您的用例,您需要标识网格页脚的HTML ID。您可以为此使用浏览器的HTML inspect元素功能: enter image description here

我测试了此JavaScript来创建链接控件,您需要将'ctl00 _ [...]'ID替换为目标网格页脚之一:

var gridFooter = document.getElementById("ctl00_phG_tab_t0_grid_ab").getElementsByTagName("nobr")[0];
var link = document.createElement('a');
var linkText = document.createTextNode("link description");
link.appendChild(linkText);
link.title = "link title";
link.href = "http://example.com";
gridFooter.parentNode.replaceChild(link, gridFooter);

这是最终结果: enter image description here