动态更改列名
Changing column name dynamically
我有一个 Header / 详细信息自定义屏幕,我在其中根据 header 中的下拉选择操作显示哪些网格列。这工作正常,但现在我也想更改一些列名称。使用记录的语法,我无法让它工作。我看不出我做错了什么 - 似乎没有任何区别。我已经附加到进程并在此事件中设置了一个断点,它已经到达终点 - 但系统似乎只是忽略它:
protected virtual void ACMappingHeader_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
{
var mh = (ACMappingHeader)e.Row;
if (mh == null) return;
if (mh.MappingType == "Option1")
{
PXUIFieldAttribute.SetDisplayName<ACMappingDetail.target1CD>(this.MappingDetail.Cache, "Target");
谢谢...
您的显示名称例程看起来是正确的,但是要确保列名实际更新,您需要执行以下操作:
- 在页面源中,您需要在网格上设置"RepaintColumns=true"值。这可以通过自定义管理器或直接从您的 ASPX 源代码完成。 - 这告诉网格在允许 headers 实际重新显示的回调后刷新列。
您可以参考下面的示例来动态更改网格列Header。
以下示例适用于屏幕 PM401000 – 项目交易查询
public class TransactionInquiryExt : PXGraphExtension<TransactionInquiry>
{
public void TranFilter_RowSelected(PXCache cache, PXRowSelectedEventArgs e, PXRowSelected baseInvoke)
{
if (baseInvoke != null)
baseInvoke(cache, e);
PX.Objects.PM.TransactionInquiry.TranFilter row = e.Row as PX.Objects.PM.TransactionInquiry.TranFilter;
if (row == null) return;
PXUIFieldAttribute.SetDisplayName<PMTran.description>(Base.Transactions.Cache,
row.ProjectID.HasValue ? "Description for Project Tran" : "Description");
}
}
确保将 RepaitColumns
属性 设置为 PXGrid
控件的 True。
我有一个 Header / 详细信息自定义屏幕,我在其中根据 header 中的下拉选择操作显示哪些网格列。这工作正常,但现在我也想更改一些列名称。使用记录的语法,我无法让它工作。我看不出我做错了什么 - 似乎没有任何区别。我已经附加到进程并在此事件中设置了一个断点,它已经到达终点 - 但系统似乎只是忽略它:
protected virtual void ACMappingHeader_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
{
var mh = (ACMappingHeader)e.Row;
if (mh == null) return;
if (mh.MappingType == "Option1")
{
PXUIFieldAttribute.SetDisplayName<ACMappingDetail.target1CD>(this.MappingDetail.Cache, "Target");
谢谢...
您的显示名称例程看起来是正确的,但是要确保列名实际更新,您需要执行以下操作:
- 在页面源中,您需要在网格上设置"RepaintColumns=true"值。这可以通过自定义管理器或直接从您的 ASPX 源代码完成。 - 这告诉网格在允许 headers 实际重新显示的回调后刷新列。
您可以参考下面的示例来动态更改网格列Header。
以下示例适用于屏幕 PM401000 – 项目交易查询
public class TransactionInquiryExt : PXGraphExtension<TransactionInquiry>
{
public void TranFilter_RowSelected(PXCache cache, PXRowSelectedEventArgs e, PXRowSelected baseInvoke)
{
if (baseInvoke != null)
baseInvoke(cache, e);
PX.Objects.PM.TransactionInquiry.TranFilter row = e.Row as PX.Objects.PM.TransactionInquiry.TranFilter;
if (row == null) return;
PXUIFieldAttribute.SetDisplayName<PMTran.description>(Base.Transactions.Cache,
row.ProjectID.HasValue ? "Description for Project Tran" : "Description");
}
}
确保将 RepaitColumns
属性 设置为 PXGrid
控件的 True。