每当第一次为每个记录加载屏幕时,我都希望向用户显示一个弹出窗口,并带有一些消息。
例如,当为特定销售订单加载“销售订单”屏幕时,它应该仅显示一次弹出窗口。然后,用户导航到下一个销售订单,它将再次仅显示该特定销售订单的弹出窗口。
我已经在构造函数和RowSelected事件中编写了代码,但没有Current记录。也就是说,CRCurrentCaseNotes
在这两个事件中始终为null。但是,使用按钮(下面的代码示例中的{ViewNotes
),它可以工作。
[PXViewName("CRCurrentCaseNotes")]
[PXCopyPasteHiddenView]
public PXSelect<Note,
Where<CRCase.caseID, Equal<Current<CRCase.caseID>>>> CRCurrentCaseNotes;
public CRCaseMaintExtension()
: base()
{
if (CRCurrentCaseNotes.Current != null)
{
CRCurrentCaseNotes.AskExt();
}
}
protected virtual void CRCase_RowSelecting(PXCache cache, PXRowSelectingEventArgs e)
{
var caseRow = (CRCase)e.Row;
if (caseRow == null) return;
if (CRCurrentCaseNotes.Current != null)
{
CRCurrentCaseNotes.AskExt();
}
}
// SAME CODE WORKS WITH THE BUTTON CLICK
public PXAction<CRCase> viewNotes;
[PXUIField(DisplayName = "View Notes")]
[PXButton]
protected virtual IEnumerable ViewNotes(PXAdapter adapter)
{
if (CRCurrentCaseNotes.Current != null)
{
CRCurrentCaseNotes.AskExt();
}
return adapter.Get();
}
答案 0 :(得分:0)
尝试在修改主要DAC键字段时显示对话框:
protected void CRCase_CaseID_FieldUpdated(PXCache sender, PXFieldUpdatedEventArgs e)
{
CRCase case = e.Row as CRCase;
if (case != null && case.CaseID != null && !e.ExternalCall)
{
// Show dialog
}
}
如果没有其他方法,可以使用JavaScript显示/隐藏SmartPanel:
document.getElementById("<%=SmartPanelID.ClientID %>").style.display = 'block';