如何在智能面板上以禁用状态启动按钮?

时间:2018-09-11 13:00:13

标签: acumatica

我想弹出一个智能面板,该面板会在按下确定按钮之前强制输入。我试过将按钮本身设置为禁用,通过PXButton声明将其链接到BLC并将其设置为禁用,然后在BLC中的PXAction / PXButton声明中将PXUIField Enabled = false设置为“假”,但这些都不起作用。每次打开选项弹出窗口时,都会启用“确定”按钮。这是我的代码段:

ASPX:

<px:PXButton Enabled="False" AlignLeft="False" runat="server" ID="CstButton13" Text="OK" CommandSourceID="ds" CommandName="DialogOptionPopupOk" DialogResult="OK"></px:PXButton>

PXAction声明:

    public PXAction<PMProject> dialogOptionPopupOk;
    [PXUIField(DisplayName = "OK", Enabled = false)]
    [PXButton]
    public virtual void DialogOptionPopupOk()
    { //No logic needed, only here to handle enable/disable of option popup ok button
    }

已选择弹出DAC行:

    protected void OptionPopup_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
    {
        dialogOptionPopupOk.SetEnabled(false);
    }

打开时弹出窗口:

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以添加一个新的PXBool类型的未绑定字段。 (例如:IsButtonVisible)

然后,您可以在PXButton(ASPX)上使用 Statecolumn 属性和 DependOnGrid 属性:

........

<px:PXPanel runat="server" SkinID="Buttons" ID="CstPanel11">

        <px:PXButton runat="server" Text="Add" CommandName="AddRows" DialogResult="OK" CommandSourceID="ds" ID="CstButton12" DependOnGrid="CstPXGrid14" StateColumn="IsButtonVisible" ></px:PXButton>

        <px:PXButton runat="server" DialogResult="Cancel" Text="Cancel" ID="CstButton13" ></px:PXButton>

    </px:PXPanel>

......

然后,在您的代码上,您可以根据自己的条件以及当前需要更改的(事件处理程序)修改此新的未绑定字段值。

请在此stackoverflow文章中找到有关这些更改的更多信息:

Is there any event triggered when highlighting a row?