网格行在自定义选项卡上消失
Grid rows disappear on custom tab
针对“项目任务”屏幕,我添加了一个带有网格的新选项卡。
我创建了一个自定义 table,其中包含一个项目 ID 和一个任务 ID,我用它来根据图形扩展过滤我的 PXSelect。
当我切换到选项卡时,行在那里正确显示,但一秒钟后它们就消失了?它像 Current.TaskId 和 Current.ProjectId 松散了那里的价值观或其他东西。请帮助
这是我的设置方式
我的图表扩展
public class ProjectTaskEntryExt : PXGraphExtension<ProjectTaskEntry>
{
public PXSelect<UsrMAXXTaskEmployees,
Where<UsrMAXXTaskEmployees.projectID, Equal<Current<PMTask.projectID>>,
And<UsrMAXXTaskEmployees.taskID, Equal<Current<PMTask.taskID>>>>> BudgetEmployees;
#region Event Handlers
protected void UsrMAXXTaskEmployees_RowInserting(PXCache cache, PXRowInsertingEventArgs e, PXRowInserting InvokeBaseHandler)
{
if (InvokeBaseHandler != null)
InvokeBaseHandler(cache, e);
var row = (UsrMAXXTaskEmployees)e.Row;
if (row != null)
{
row.ProjectID = Base.Task.Current.ProjectID;
row.TaskID = Base.Task.Current.TaskID;
}
}
public override void Initialize()
{
base.Initialize();
}
#endregion
}
这是我为 table
定制的 dac
public class UsrMAXXTaskEmployees : IBqlTable
{
#region Selected
public abstract class selected : IBqlField
{ }
[PXBool]
[PXUIField(DisplayName = "Selected")]
public virtual bool? Selected { get; set; }
#endregion
#region ID
public abstract class iD : PX.Data.IBqlField
{
}
protected int? _ID;
[PXDBIdentity(IsKey = true)]
[PXUIField(Enabled = false)]
public virtual int? ID
{
get
{
return this._ID;
}
set
{
this._ID = value;
}
}
#endregion
#region EmployeeID
public abstract class employeeId : PX.Data.IBqlField
{
}
protected String _EmployeeId;
[PXDBString()]
[PXUIField(DisplayName = "Employee")]
[PXSelector(
typeof(Search<PX.Objects.EP.EPEmployee.acctCD>),
typeof(PX.Objects.EP.EPEmployee.acctCD),
typeof(PX.Objects.EP.EPEmployee.acctName),
DescriptionField = typeof(PX.Objects.EP.EPEmployee.acctName))]
public virtual String EmployeeId
{
get
{
return this._EmployeeId;
}
set
{
this._EmployeeId = value;
}
}
#endregion
#region StartDate
public abstract class startDate : PX.Data.IBqlField
{
}
protected DateTime? _StartDate;
[PXDBDate()]
[PXDefault(typeof(AccessInfo.businessDate))]
[PXUIField(DisplayName = "Start Date")]
public virtual DateTime? StartDate
{
get
{
return this._StartDate;
}
set
{
this._StartDate = value;
}
}
#endregion
#region EndDate
public abstract class endDate : PX.Data.IBqlField
{
}
protected DateTime? _EndDate;
[PXDBDate()]
[PXUIField(DisplayName = "End Date")]
public virtual DateTime? EndDate
{
get
{
return this._EndDate;
}
set
{
this._EndDate = value;
}
}
#endregion
#region ProjectID
public abstract class projectID : PX.Data.IBqlField
{
}
protected int? _ProjectID;
[PXDBInt()]
[PXDBDefault(typeof(PX.Objects.PM.PMProject.contractID))]
[PXUIField(DisplayName = "Project")]
public virtual int? ProjectID
{
get
{
return this._ProjectID;
}
set
{
this._ProjectID = value;
}
}
#endregion
#region TaskID
public abstract class taskID : PX.Data.IBqlField
{
}
protected int? _TaskID;
[PXDBInt()]
[PXDefault(0)]
[PXUIField(DisplayName = "Task")]
public virtual int? TaskID
{
get
{
return this._TaskID;
}
set
{
this._TaskID = value;
}
}
#endregion
}
我将网格的高度设置为 100%,这是其他选项卡网格的设置。但是一旦我将它设置为固定值,如 300px,行就不会再消失了。
请检查您的网格是否启用了 AutoSize 以及 SkinID 是否设置为 DetailsInTab:
<px:PXGrid ID="gridNS" runat="server" SkinID="DetailsInTab" Width="100%" Height="150px" Caption="Mailings" AdjustPageSize="Auto" AllowPaging="True" DataSourceID="ds">
<AutoSize Enabled="True" />
<AutoCallBack Target="gridNR" Command="Refresh" />
<Levels>
<px:PXGridLevel DataMember=“NotificationSources" DataKeyNames="SourceID,SetupID">
<Columns>
...
</Columns>
</px:PXGridLevel>
</Levels>
</px:PXGrid>
针对“项目任务”屏幕,我添加了一个带有网格的新选项卡。
我创建了一个自定义 table,其中包含一个项目 ID 和一个任务 ID,我用它来根据图形扩展过滤我的 PXSelect。
当我切换到选项卡时,行在那里正确显示,但一秒钟后它们就消失了?它像 Current.TaskId 和 Current.ProjectId 松散了那里的价值观或其他东西。请帮助
这是我的设置方式
我的图表扩展
public class ProjectTaskEntryExt : PXGraphExtension<ProjectTaskEntry>
{
public PXSelect<UsrMAXXTaskEmployees,
Where<UsrMAXXTaskEmployees.projectID, Equal<Current<PMTask.projectID>>,
And<UsrMAXXTaskEmployees.taskID, Equal<Current<PMTask.taskID>>>>> BudgetEmployees;
#region Event Handlers
protected void UsrMAXXTaskEmployees_RowInserting(PXCache cache, PXRowInsertingEventArgs e, PXRowInserting InvokeBaseHandler)
{
if (InvokeBaseHandler != null)
InvokeBaseHandler(cache, e);
var row = (UsrMAXXTaskEmployees)e.Row;
if (row != null)
{
row.ProjectID = Base.Task.Current.ProjectID;
row.TaskID = Base.Task.Current.TaskID;
}
}
public override void Initialize()
{
base.Initialize();
}
#endregion
}
这是我为 table
定制的 dac public class UsrMAXXTaskEmployees : IBqlTable
{
#region Selected
public abstract class selected : IBqlField
{ }
[PXBool]
[PXUIField(DisplayName = "Selected")]
public virtual bool? Selected { get; set; }
#endregion
#region ID
public abstract class iD : PX.Data.IBqlField
{
}
protected int? _ID;
[PXDBIdentity(IsKey = true)]
[PXUIField(Enabled = false)]
public virtual int? ID
{
get
{
return this._ID;
}
set
{
this._ID = value;
}
}
#endregion
#region EmployeeID
public abstract class employeeId : PX.Data.IBqlField
{
}
protected String _EmployeeId;
[PXDBString()]
[PXUIField(DisplayName = "Employee")]
[PXSelector(
typeof(Search<PX.Objects.EP.EPEmployee.acctCD>),
typeof(PX.Objects.EP.EPEmployee.acctCD),
typeof(PX.Objects.EP.EPEmployee.acctName),
DescriptionField = typeof(PX.Objects.EP.EPEmployee.acctName))]
public virtual String EmployeeId
{
get
{
return this._EmployeeId;
}
set
{
this._EmployeeId = value;
}
}
#endregion
#region StartDate
public abstract class startDate : PX.Data.IBqlField
{
}
protected DateTime? _StartDate;
[PXDBDate()]
[PXDefault(typeof(AccessInfo.businessDate))]
[PXUIField(DisplayName = "Start Date")]
public virtual DateTime? StartDate
{
get
{
return this._StartDate;
}
set
{
this._StartDate = value;
}
}
#endregion
#region EndDate
public abstract class endDate : PX.Data.IBqlField
{
}
protected DateTime? _EndDate;
[PXDBDate()]
[PXUIField(DisplayName = "End Date")]
public virtual DateTime? EndDate
{
get
{
return this._EndDate;
}
set
{
this._EndDate = value;
}
}
#endregion
#region ProjectID
public abstract class projectID : PX.Data.IBqlField
{
}
protected int? _ProjectID;
[PXDBInt()]
[PXDBDefault(typeof(PX.Objects.PM.PMProject.contractID))]
[PXUIField(DisplayName = "Project")]
public virtual int? ProjectID
{
get
{
return this._ProjectID;
}
set
{
this._ProjectID = value;
}
}
#endregion
#region TaskID
public abstract class taskID : PX.Data.IBqlField
{
}
protected int? _TaskID;
[PXDBInt()]
[PXDefault(0)]
[PXUIField(DisplayName = "Task")]
public virtual int? TaskID
{
get
{
return this._TaskID;
}
set
{
this._TaskID = value;
}
}
#endregion
}
我将网格的高度设置为 100%,这是其他选项卡网格的设置。但是一旦我将它设置为固定值,如 300px,行就不会再消失了。
请检查您的网格是否启用了 AutoSize 以及 SkinID 是否设置为 DetailsInTab:
<px:PXGrid ID="gridNS" runat="server" SkinID="DetailsInTab" Width="100%" Height="150px" Caption="Mailings" AdjustPageSize="Auto" AllowPaging="True" DataSourceID="ds">
<AutoSize Enabled="True" />
<AutoCallBack Target="gridNR" Command="Refresh" />
<Levels>
<px:PXGridLevel DataMember=“NotificationSources" DataKeyNames="SourceID,SetupID">
<Columns>
...
</Columns>
</px:PXGridLevel>
</Levels>
</px:PXGrid>