Skip to main content

syncfusion-aspnetcore-context-menu

Implement Syncfusion ContextMenu component in ASP.NET Core applications to display contextual menus triggered by right-click or programmatic actions.

소스 정보

저장소
syncfusion/aspnetcore-ui-components-skills
최근 소스 활동
2026년 7월 6일 07:20
감지된 SKILL.md 언어
영어
스타
0
포크
2

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
8 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
syncfusion-aspnetcore-context-menu
description
Implement Syncfusion ContextMenu component in ASP.NET Core applications to display contextual menus triggered by right-click or programmatic actions.
metadata
{"author":"Syncfusion Inc","version":"34.1.29","category":"Navigation Components"}
# Implementing Syncfusion ContextMenu ## When to Use This Skill Use the ContextMenu component when you need to: - **Display context-sensitive menus** triggered by right-click or long-touch on target elements - **Create nested multi-level menus** with hierarchical menu item structures - **Add icons and visual indicators** to menu items using CSS icon classes - **Implement navigation links** within menu items to route to different pages - **Handle menu item selection** with programmatic or event-driven logic - **Customize menu appearance** with CSS classes, templates, and animations - **Support keyboard navigation** for accessible menu interactions - **Enable scrollable menus** for large numbers of menu items exceeding viewport - **Apply animations** to submenu transitions with multiple effect options - **Persist component state** between page reloads and maintain locale customization - **Support RTL (right-to-left) rendering** for international applications - **Render custom item templates** for complex menu item layouts beyond simple text ## Component Overview The Syncfusion ContextMenu is a lightweight navigation component that displays a list of commands or menu items in response to user interactions, typically a right-click on a target element. It provides: - **Target-Based Triggering**: Attach context menu to specific DOM elements via CSS selector - **Multi-Level Nesting**: Support for submenu items nested within parent menu items - **Icon Support**: Apply CSS icon classes (e.g., e-icons, Font Awesome) to menu items - **Navigation Integration**: Direct navigation via URL property on menu items - **Rich Animations**: Multiple transition effects (SlideDown, ZoomIn, FadeIn, None) with configurable duration - **Scrollable Content**: Enable vertical scrolling for menus exceeding viewport height - **Template Customization**: Define custom HTML templates for complex menu item layouts - **Event System**: Capture menu lifecycle events (beforeOpen, onOpen, select, beforeClose, onClose) - **Item Rendering Hooks**: Use beforeItemRender event to customize individual items per render - **Selector Filtering**: Filter target elements within a container using CSS selector patterns - **Hover Delay**: Configure delay duration before submenu appears on hover - **State Persistence**: Automatically restore component state on page reloads - **Locale Support**: Override global culture for component-specific localization - **RTL Support**: Automatic right-to-left rendering for RTL languages - **HTML Sanitization**: Optional sanitization of untrusted HTML content in menu items - **Submenu Behavior**: Control whether submenus open on hover or click-only ## Documentation and Navigation Guide ### Getting Started 📄 **Read:** [references/getting-started.md](references/getting-started.md) - Prerequisites and ASP.NET Core project setup - NuGet package installation (Syncfusion.EJ2.AspNet.Core) - TagHelper registration in _ViewImports.cshtml - Stylesheet and script resource references - Script Manager registration - Basic ContextMenu implementation with target element - Rendering first context menu with simple menu items - Initial data binding with items property ### Menu Items and Data Binding 📄 **Read:** [references/menu-items-and-data-binding.md](references/menu-items-and-data-binding.md) - MenuItem structure and required properties (text, id) - Data binding patterns using List and JSON objects - Menu item properties: text, id, separator, iconCss, items, url - Creating single-level and multi-level nested menus - Separator usage for visual grouping (separator: true) - Dynamic menu item updates and modifications - Local data source patterns and data transformation ### Icons, Navigation, and Customization 📄 **Read:** [references/icons-navigation-customization.md](references/icons-navigation-customization.md) - iconCss property for adding icons to menu items - e-icons CSS class for Syncfusion built-in icons - URL property for navigation links in menu items - Creating action vs navigation menu items - Custom CSS classes for styling menu items (cssClass property) - Hover delay configuration (hoverDelay property) - Filter selector for target element matching (filter property) ### Animation and Scrolling 📄 **Read:** [references/animation-scrolling.md](references/animation-scrolling.md) - animationSettings configuration for submenu transitions - Animation effects: None, SlideDown, ZoomIn, FadeIn - Duration and easing properties for animation timing - enableScrolling property for handling large menu lists - Vertical scrolling behavior for overflow menu items - BeforeOpen event for dynamic menu height adjustment - Performance considerations for scrollable menus ### Templates and Custom Rendering 📄 **Read:** [references/templates-customization.md](references/templates-customization.md) - itemTemplate property for custom menu item layouts - beforeItemRender event for individual item customization - Rendering custom HTML within menu items - Adding UI components (checkboxes, inputs) to menu items - Event arguments in beforeItemRender (name property in MenuEventArgs) - Dynamic item HTML generation based on data - CSS customization through rendered elements ### Event Handling and Integration 📄 **Read:** [references/event-handling.md](references/event-handling.md) - select event for menu item selection/click handling - beforeOpen event triggered before submenu opens - beforeClose event triggered before menu closes - onOpen event triggered when submenu is opened - onClose event triggered when menu closes - beforeItemRender event for render-time customization - created event indicating component initialization complete - Event-driven menu operations and conditional logic --- ## Quick Start Example **Razor Markup (Index.cshtml):** ```html @page @model IndexModel <div id="target">Right-click me</div> <ejs-contextmenu id="contextmenu" target="#target" items="Model.MenuItems"></ejs-contextmenu> ``` **PageModel (Index.cshtml.cs):** ```csharp public class IndexModel : PageModel { public List<object> MenuItems { get; set; } public void OnGet() { MenuItems = new List<object> { new { text = "Cut", id = "cut", iconCss = "e-icons e-cut" }, new { text = "Copy", id = "copy", iconCss = "e-icons e-copy" }, new { text = "Paste", id = "paste", iconCss = "e-icons e-paste" }, new { separator = true }, new { text = "Font", id = "font", items = new List<object> { new { text = "Bold", id = "bold" }, new { text = "Italic", id = "italic" } } } }; } } ``` --- ## Common Patterns | Pattern | Use Case | Reference | |---------|----------|-----------| | **Right-Click Menu** | Context menu triggered by mouse right-click | [getting-started.md](references/getting-started.md) | | **Hierarchical Items** | Multi-level nested menu structure | [menu-items-and-data-binding.md](references/menu-items-and-data-binding.md) | | **Icon Support** | Menu items with visual icons | [icons-navigation-customization.md](references/icons-navigation-customization.md) | | **Navigation Links** | Menu items as navigation shortcuts | [icons-navigation-customization.md](references/icons-navigation-customization.md) | | **Animated Transitions** | Submenu appearance effects | [animation-scrolling.md](references/animation-scrolling.md) | | **Scrollable Menus** | Large menu lists with overflow | [animation-scrolling.md](references/animation-scrolling.md) | | **Custom Templates** | Complex item layouts | [templates-customization.md](references/templates-customization.md) | | **Selection Handling** | React to item selection | [event-handling.md](references/event-handling.md) | | **Hover Delay** | Control submenu timing | [icons-navigation-customization.md](references/icons-navigation-customization.md) | | **RTL Support** | Right-to-left language rendering | [getting-started.md](references/getting-started.md) | --- ## Key Properties | Property | Type | Purpose | Example | |----------|------|---------|---------| | `target` | string | CSS selector for target element | "#menuTarget" or ".menu-area" | | `items` | MenuItemModel[] | Array of menu item definitions | List of objects with text, id properties | | `animationSettings` | MenuAnimationSettingsModel | Submenu open animation config | effect: "ZoomIn", duration: 500 | | `enableScrolling` | boolean | Enable vertical scrolling for overflow | true for large menus | | `hoverDelay` | number | Delay in ms before submenu opens on hover | 500 | | `showcItemOnClick` | boolean | Submenu opens only on click | true to disable hover opening | | `itemTemplate` | string or Function | Custom HTML template for items | HTML string or callback function | | `cssClass` | string | CSS class for menu wrapper styling | "custom-context-menu dark-theme" | | `filter` | string | CSS selector to filter target elements | ".menu-enabled" | | `enableRtl` | boolean | Right-to-left rendering | true | | `enablePersistence` | boolean | Preserve state on page reload | true | | `locale` | string | Component locale override | "fr-FR" | | `enableHtmlSanitizer` | boolean | Sanitize untrusted HTML | true (recommended for user content) | --- ## Common Use Cases **1. File Manager Context Menu** Attach context menu to file list for Cut, Copy, Paste, Delete, Rename operations with icons. **2. Text Editor Toolbar** Provide right-click access to formatting options (Bold, Italic, Underline) and text manipulation. **3. Data Grid Row Actions** Context menu on grid rows for Edit, View, Delete, Export operations on selected rows. **4. Navigation Shortcuts** Quick access menu providing links to different application sections or external resources. **5. Multi-Language Support** Configure locale-specific formatting and override default culture for globalized applications. --- ## Next Steps - Review the **API Reference** for complete property and method documentation - Combine ContextMenu with other navigation components (Toolbar, Sidebar) for comprehensive UI - Implement keyboard shortcuts alongside context menu for enhanced accessibility - Test RTL rendering if targeting international audiences - Consider performance implications when rendering large menu lists (>100 items)
GitHub에서 보기