Избегайте показа диалога в методе RowSelected. Этот метод вызывается каждый раз, когда выбирается запись, поэтому он будет отображаться в неуправляемом цикле.
Также проверьте возвращаемое значение в диалоговом окне, чтобы узнать, какая кнопка была нажата.
Чтобы отобразить диалоговое окно при нажатии кнопки «Процесс», переопределите метод «Процесс». Возможно, вам придется изменить «База» в зависимости от контекста (PXGraph / PXGraphExtension):
[PXProcessButton]
[PXUIField(DisplayName = "Process", MapEnableRights = PXCacheRights.Update, MapViewRights = PXCacheRights.Update)]
protected override IEnumerable Process(PXAdapter adapter)
{
if (Base.Ask("ConfirmationTitle", "ConfirmationMessage", MessageButtons.YesNo) != WebDialogResult.Yes)
{
// Click on No, don't execute the base Process action
return adapter.Get();
}
// Click on Yes, execute the base Process action
return Base.Process(adapter);
}