diff --git a/knowledge-base/grid-prevent-onrowclick-on-doubleclick.md b/knowledge-base/grid-prevent-onrowclick-on-doubleclick.md new file mode 100644 index 000000000..bcda78d0a --- /dev/null +++ b/knowledge-base/grid-prevent-onrowclick-on-doubleclick.md @@ -0,0 +1,109 @@ +--- +title: How to Prevent OnRowClick on Double Click +description: Learn how to distinguish between single and double click events on Grid rows in Blazor applications, preventing OnRowClick when a double click occurs. +type: how-to +page_title: Differentiating Between Single and Double Clicks on Grid Rows in Blazor +slug: grid-kb-prevent-onrowclick-on-doubleclick +tags: grid, blazor, onrowclick, onrowdoubleclick +res_type: kb +ticketid: 1684377 +--- + +## Environment + +
Product | +Grid for Blazor | +
@clickMessage
+ +@code { + private Timer clickTimer; + private string clickMessage; + private const int clickDelay = 250; + private object lastClickedItem; + + private void HandleRowClick(GridRowClickEventArgs args) + { + lastClickedItem = args.Item; + + clickTimer?.Stop(); + clickTimer?.Dispose(); + + clickTimer = new Timer(clickDelay); + clickTimer.Elapsed += async (sender, eventArgs) => + { + clickTimer.Stop(); + clickTimer.Dispose(); + clickTimer = null; + + await InvokeAsync(() => + { + clickMessage = $"Single clicked on: {((SampleData)lastClickedItem).Name}"; + StateHasChanged(); + }); + }; + + clickTimer.AutoReset = false; + clickTimer.Start(); + } + + private void HandleRowDoubleClick(GridRowClickEventArgs args) + { + // Cancel single-click logic + clickTimer?.Stop(); + clickTimer?.Dispose(); + clickTimer = null; + + clickMessage = $"Double clicked on: {((SampleData)args.Item).Name}"; + } + + private IEnumerable