如何使 PXAction 和 PXUIFieldAttribute.SetEnabled 工作
How to make PXAction and PXUIFieldAttribute.SetEnabled Work
我不知道为什么我的代码无法运行或可能缺少某些内容。
我正在尝试做的是使用 PXAction 禁用特定字段,当我编译时 运行 这样我的浏览器就会加载到无穷大。
谢谢大家!
这是我的代码
解码器:
#region RadnomTest
[PXDBString(20, IsUnicode = true)]
[PXUIField(DisplayName = "Random Test")]
public virtual string RadnomTest { get; set; }
public abstract class radnomTest : BqlString.Field<radnomTest> { }
#endregion
图表
#region Toggle Readonly
public PXAction<ClientProfileNames> ReadonlyToggle;
[PXButton(CommitChanges = true)]
[PXUIField(DisplayName = "Toggle Read-only")]
protected virtual void readonlyToggle(Events.RowSelected<ClientProfileNames> e)
{
var row = e.Row;
PXUIFieldAttribute.SetEnabled<ClientProfileNames.radnomTest>(e.Cache, row, true);
Actions.PressSave();
}
#endregion
第
页
<asp:Content ID="cont1" ContentPlaceHolderID="phDS" Runat="Server">
<px:PXDataSource ID="ds" runat="server" Visible="True" Width="100%" PrimaryView="ClinetInfosMain" TypeName="OnlyForTesting.Graph.Profile.ClientProfileNamesMaint">
<CallbackCommands>
</CallbackCommands>
</px:PXDataSource>
</asp:Content>
<asp:Content ID="cont2" ContentPlaceHolderID="phF" Runat="Server">
<px:PXFormView ID="form" runat="server" DataSourceID="ds" Style="z-index: 100" Width="100%" DataMember="ClinetInfosMain" TabIndex="2900">
<Template>
<px:PXLayoutRule runat="server" StartRow="True" StartColumn="True"/>
<px:PXTextEdit ID="edRadnomTest" runat="server" AlreadyLocalized="False" DataField="RadnomTest" IsClientControl="True">
</px:PXTextEdit>
</Template>
<AutoSize Container="Window" Enabled="True" MinHeight="200" />
</px:PXFormView>
</asp:Content>
应从 RowSelected 事件设置字段状态,而不是单击按钮等操作的结果。
如果您需要根据另一个字段的值设置启用状态,我建议您检查 PXUIEnabled 属性,它可以让您以声明方式处理此问题:https://asiablog.acumatica.com/2016/11/pxuienabled-and-pxuirequired-attributes.html
我不知道为什么我的代码无法运行或可能缺少某些内容。
我正在尝试做的是使用 PXAction 禁用特定字段,当我编译时 运行 这样我的浏览器就会加载到无穷大。
谢谢大家!
这是我的代码
解码器:
#region RadnomTest
[PXDBString(20, IsUnicode = true)]
[PXUIField(DisplayName = "Random Test")]
public virtual string RadnomTest { get; set; }
public abstract class radnomTest : BqlString.Field<radnomTest> { }
#endregion
图表
#region Toggle Readonly
public PXAction<ClientProfileNames> ReadonlyToggle;
[PXButton(CommitChanges = true)]
[PXUIField(DisplayName = "Toggle Read-only")]
protected virtual void readonlyToggle(Events.RowSelected<ClientProfileNames> e)
{
var row = e.Row;
PXUIFieldAttribute.SetEnabled<ClientProfileNames.radnomTest>(e.Cache, row, true);
Actions.PressSave();
}
#endregion
第
页<asp:Content ID="cont1" ContentPlaceHolderID="phDS" Runat="Server">
<px:PXDataSource ID="ds" runat="server" Visible="True" Width="100%" PrimaryView="ClinetInfosMain" TypeName="OnlyForTesting.Graph.Profile.ClientProfileNamesMaint">
<CallbackCommands>
</CallbackCommands>
</px:PXDataSource>
</asp:Content>
<asp:Content ID="cont2" ContentPlaceHolderID="phF" Runat="Server">
<px:PXFormView ID="form" runat="server" DataSourceID="ds" Style="z-index: 100" Width="100%" DataMember="ClinetInfosMain" TabIndex="2900">
<Template>
<px:PXLayoutRule runat="server" StartRow="True" StartColumn="True"/>
<px:PXTextEdit ID="edRadnomTest" runat="server" AlreadyLocalized="False" DataField="RadnomTest" IsClientControl="True">
</px:PXTextEdit>
</Template>
<AutoSize Container="Window" Enabled="True" MinHeight="200" />
</px:PXFormView>
</asp:Content>
应从 RowSelected 事件设置字段状态,而不是单击按钮等操作的结果。
如果您需要根据另一个字段的值设置启用状态,我建议您检查 PXUIEnabled 属性,它可以让您以声明方式处理此问题:https://asiablog.acumatica.com/2016/11/pxuienabled-and-pxuirequired-attributes.html