【问题标题】:How do I start a button in the disabled state on a Smart Panel?如何在智能面板上启动处于禁用状态的按钮?
【发布时间】:2018-09-12 03:37:51
【问题描述】:

我想在按下 OK 按钮之前弹出一个强制输入的智能面板。我已经尝试将按钮本身设置为禁用,通过 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);
    }

打开时弹出:

【问题讨论】:

    标签: acumatica


    【解决方案1】:

    您可以添加一个新的 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?

    【讨论】:

    • 基于 OP 业务规则,但 Popup 中没有网格控件。我仍然认为在没有 JavaScript 的情况下启用/禁用 PXSmartPanel 中的按钮是框架中的一个限制,有人可以提供一个明确的答案吗?
    • HB,用 JavaScript 可以吗?如果是的话,我可能会写一些。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    相关资源
    最近更新 更多