Comments (1)
The context menu id must be unique in the DOM. If you want to render a context menu for each child, then each menu must have a different id. Alternatively, you could render the context menu somewhere else (it doesn't matter where it lives, it could live in App.razor for all it cares) and then each child only contains the trigger. Then you can pass different data to the menu to differentiate its items.
Example A: https://blazorrepl.com/repl/wlkSGWla35chNhov47
<Child Item="@("abc")"/>
<Child Item="@(123)"/>
@using BlazorContextMenu
@typeparam TItem
@code{
private string menuId = "menuId_" + Guid.NewGuid().ToString("N");
}
<ContextMenu Id="@menuId">
<Item>Hello</Item>
@if (((TItem)context.Data) != null) @*invalid cast exception here*@
{
<Item>@context.Data</Item>
}
</ContextMenu>
<ContextMenuTrigger MenuId="@menuId" Data="Item">
<p>Right-click on me to show the context menu !!</p>
</ContextMenuTrigger>
Example B: https://blazorrepl.com/repl/QPOyGClk38vtNQ6O38
<Child Item="@("abc")"/>
<Child Item="@(123)"/>
<ContextMenu Id="myMenu">
<Item>Hello</Item>
@if (context.Data != default)
{
<Item>@context.Data</Item>
}
</ContextMenu>
Child.razor
@using BlazorContextMenu
@typeparam TItem
<ContextMenuTrigger MenuId="myMenu" Data="Item">
<p>Right-click on me to show the context menu !!</p>
</ContextMenuTrigger>
from blazorcontextmenu.
Related Issues (20)
- Configurable direction of menu-open (e.g. bottom-right, top-left)
- SubMenu component doesn't use ContextMenuBase.ZIndex HOT 4
- "Cannot read properties of undefined (reading 'removeEventListener')" after closing menu HOT 3
- Support touch devices by changing to pointer events
- Scrolling menu options HOT 2
- Context menu does not close automatically if a dialogue menu is opened. HOT 1
- include blazorContextMenu.min.css and blazorContextMenu.min.js in a more Blazor like way. Reference the static files will not necessary HOT 1
- Context menu position on dialog windows HOT 2
- Disable menu item in table depending the model. HOT 2
- ContextMenuTrigger element is messing with table css rules HOT 1
- a way to detect which mouse button triggered context menu HOT 1
- "OnClick" actions not working in components HOT 2
- Uncaught (in promise) undefined HOT 1
- associate OnClick to a task made the component wait for the task is finish to close itself HOT 1
- Fix multiple security issue found in Microsoft.AspNetCore.Components 6.0.0 HOT 6
- About running speed HOT 4
- RTL Support
- Error on browser console when publishing on dotnet 8 HOT 2
- Scrolling Menu Items HOT 2
- TypeError when hovering over submenu items in BlazorContextMenu HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from blazorcontextmenu.