Unable to open dialog from another dialog in Radzen 7.x (worked in previous versions) #1769

Closed
opened 2026-01-29 17:58:19 +00:00 by claunia · 5 comments
Owner

Originally created by @jonycv on GitHub (May 19, 2025).

Since upgrading from Radzen 6.6.4 to version 7.x, dialogs opened from within another dialog no longer function. In version 6.4 and earlier, opening a dialog from inside another dialog worked as expected. In 7.x, the inner dialog does not appear, or triggers no action.

To Reproduce

  1. Open a dialog (Dialog A) from your main page/component.
  2. From within Dialog A, attempt to open another dialog (Dialog B), for example by clicking a button or triggering a method that calls DialogService.Open.
  3. In Radzen 6.6.4, Dialog B opens normally on top of Dialog A.
  4. In Radzen 7.x, Dialog B does not open, or nothing happens.
  • OS: [Windows 11]
  • Browser: [Edge latest]
  • Radzen Version: [6.6.4]
Originally created by @jonycv on GitHub (May 19, 2025). Since upgrading from Radzen 6.6.4 to version 7.x, dialogs opened from within another dialog no longer function. In version 6.4 and earlier, opening a dialog from inside another dialog worked as expected. In 7.x, the inner dialog does not appear, or triggers no action. **To Reproduce** 1. Open a dialog (Dialog A) from your main page/component. 2. From within Dialog A, attempt to open another dialog (Dialog B), for example by clicking a button or triggering a method that calls DialogService.Open. 3. In Radzen 6.6.4, Dialog B opens normally on top of Dialog A. 4. In Radzen 7.x, Dialog B does not open, or nothing happens. - OS: [Windows 11] - Browser: [Edge latest] - Radzen Version: [6.6.4]
Author
Owner

@akorchev commented on GitHub (May 19, 2025):

Hi @jonycv,

Seems to work fine:

Image

Tested by changing this line to this:

<RadzenButton Click="@((args) => dialogService.OpenAsync<DialogCardPage>("Another",  new Dictionary<string, object>() { { "OrderID", OrderID } }))" Variant="Variant.Flat" Text="Close" Style="width: 120px" />
@akorchev commented on GitHub (May 19, 2025): Hi @jonycv, Seems to work fine: <img width="1728" alt="Image" src="https://github.com/user-attachments/assets/a63bf666-88fd-4462-8a62-5b9b4bf571e1" /> Tested by changing [this](https://github.com/radzenhq/radzen-blazor/blob/master/RadzenBlazorDemos/Pages/DialogCardPage.razor#L49) line to this: ``` <RadzenButton Click="@((args) => dialogService.OpenAsync<DialogCardPage>("Another", new Dictionary<string, object>() { { "OrderID", OrderID } }))" Variant="Variant.Flat" Text="Close" Style="width: 120px" /> ```
Author
Owner

@eptgrant commented on GitHub (May 20, 2025):

`private async Task OpenSuccessScreen()
{
DialogService.CloseSide();

    await DialogService.OpenSideAsync<BookingCreatedSlideOut>("", new Dictionary<string, object>
    {
        { "Abc", "abc }
    });
}`

I noticed this as well on the side panel, If you attempt to close the side, then re-open a new one it no longer works in version 7+.

It will work if you add a delay between closing and opening. Im guessing due to the animations.

@eptgrant commented on GitHub (May 20, 2025): `private async Task OpenSuccessScreen() { DialogService.CloseSide(); await DialogService.OpenSideAsync<BookingCreatedSlideOut>("", new Dictionary<string, object> { { "Abc", "abc } }); }` I noticed this as well on the side panel, If you attempt to close the side, then re-open a new one it no longer works in version 7+. It will work if you add a delay between closing and opening. Im guessing due to the animations.
Author
Owner

@akorchev commented on GitHub (May 20, 2025):

Yes, it is due to the animation duration. We will see if we can implement some new CloseSideAsync method that would wait for the animation delay. We didn't realise closing and opening a side dialog was a UX pattern that people would use. Feels so strange.

@akorchev commented on GitHub (May 20, 2025): Yes, it is due to the animation duration. We will see if we can implement some new CloseSideAsync method that would wait for the animation delay. We didn't realise closing and opening a side dialog was a UX pattern that people would use. Feels so strange.
Author
Owner

@jonycv commented on GitHub (May 20, 2025):

Thank you very much for the clarification — and apologies for not specifying earlier that we were referring specifically to OpenSideAsync and the sidebar.

In our case, we’ve implemented a floating menu on the right side of the screen. Depending on what the user clicks, we close the current side panel and open a new one — simulating navigation between sections while staying within the same contextual menu.

Each section may display different types of advanced configuration panels, including dynamic tables, form inputs, and nested options, so this open/close pattern is quite natural in our UX flow.

Thanks again for your support!

@jonycv commented on GitHub (May 20, 2025): Thank you very much for the clarification — and apologies for not specifying earlier that we were referring specifically to OpenSideAsync and the sidebar. In our case, we’ve implemented a floating menu on the right side of the screen. Depending on what the user clicks, we close the current side panel and open a new one — simulating navigation between sections while staying within the same contextual menu. Each section may display different types of advanced configuration panels, including dynamic tables, form inputs, and nested options, so this open/close pattern is quite natural in our UX flow. Thanks again for your support!
Author
Owner

@eptgrant commented on GitHub (May 29, 2025):

Hi again @akorchev ,

I realise this may be quite a specific problem that only I have encountered, but your fix (The CloseSideAsync) only appears to work for one level.

eg.

  1. On main screen, OpenSideAsync(SideDialog 1)
  2. On SideDialog 1, click button that closes SideDialog 1 and opens SideDialog 2 (This was broken but is now fixed)
  3. On SideDialog 2, click button that closes SideDialog 2 and opens SideDialog 3 (This doesn't work, SideDialog 2 closes, SideDialog 3 never opens)

From some brief debugging I can see that "OnSideCloseComplete" is called twice on step 3 - perhaps an issue there.

Completely understand if this isn't addressed as it is an edge case.

Cheers

@eptgrant commented on GitHub (May 29, 2025): Hi again @akorchev , I realise this may be quite a specific problem that only I have encountered, but your fix (The CloseSideAsync) only appears to work for one level. eg. 1. On main screen, OpenSideAsync(SideDialog 1) 2. On SideDialog 1, click button that closes SideDialog 1 and opens SideDialog 2 (This was broken but is now fixed) 3. On SideDialog 2, click button that closes SideDialog 2 and opens SideDialog 3 (This doesn't work, SideDialog 2 closes, SideDialog 3 never opens) From some brief debugging I can see that "OnSideCloseComplete" is called twice on step 3 - perhaps an issue there. Completely understand if this isn't addressed as it is an edge case. Cheers
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/radzen-blazor#1769