---
title: clsMenuItem
summary: API reference for clsMenuItem.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-17
library: SAIF.Business.Menu
reference_type: package
---

# clsMenuItem

Represents the placement of one `clsMenuPage` into one `clsMenuCategoryCode`, with display order, visibility, and a tooltip (`MENU_ITEM`). Owns the child `clsMenuSecurityCollection` that grants security-group access to this specific placement, and is the row-level unit resolved by the authorization projection (`clsMenuAuthorizedItemCollection`).

## Purpose
- Owns the identity, ordering, visibility, and tooltip of one page-in-category placement, persisted to [MENU_ITEM](../../database-tables.md#menu_item).
- Owns and cascades `Save` to its child `SecurityGroups` collection, and is invalid/dirty whenever its groups are ([BR-MENU-021](../../business-rules.md#br-menu-021-cascading-child-security-group-save)).
- Lazily loads its owning page and category on first access ([BR-MENU-024](../../business-rules.md#br-menu-024-lazy-loaded-navigation-properties)).
- Governs whether the item is offered by navigation resolution via `IsVisible` ([BR-MENU-010](../../business-rules.md#br-menu-010-visible-only-lookups)).

## Context
- Namespace: `SAIF.Business.Menu`
- Assembly/package: `SAIF.Business.Menu` (`SAIF.BOF.Presentation.Web.Infragistics111` NuGet package)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| MenuItemSeqNum | `Property MenuItemSeqNum As Decimal` | Server-assigned surrogate key from the `MENU_ITEM_SEQ` sequence ([BR-MENU-014](../../business-rules.md#br-menu-014-sequence-assigned-identity)). |
| MenuPageSeqNum | `Property MenuPageSeqNum As Decimal` | Foreign key to the owning `clsMenuPage`. |
| MenuPage | `ReadOnly Property MenuPage As clsMenuPage` | Lazily loads the owning page on first access ([BR-MENU-024](../../business-rules.md#br-menu-024-lazy-loaded-navigation-properties)). |
| MenuCategoryCode | `Property MenuCategoryCode As String` | Foreign key to the owning `clsMenuCategoryCode`. |
| MenuCategory | `ReadOnly Property MenuCategory As clsMenuCategoryCode` | Lazily loads the owning category on first access ([BR-MENU-024](../../business-rules.md#br-menu-024-lazy-loaded-navigation-properties)). |
| IsVisible | `Property IsVisible As Boolean` | Visibility flag persisted as `Y`/`N`; hidden items are excluded from navigation resolution ([BR-MENU-010](../../business-rules.md#br-menu-010-visible-only-lookups), [BR-MENU-019](../../business-rules.md#br-menu-019-yn-boolean-flag-storage)). |
| PageOrder | `Property PageOrder As Decimal` | Display order of this item within its category. |
| ToolTip | `Property ToolTip As String` | Tooltip text shown for this placement. |
| SecurityGroups | `ReadOnly Property SecurityGroups As clsMenuSecurityCollection` | Lazily loads this item's security grants; saved together with the parent item ([BR-MENU-021](../../business-rules.md#br-menu-021-cascading-child-security-group-save), [BR-MENU-024](../../business-rules.md#br-menu-024-lazy-loaded-navigation-properties)). |
| NewMenuItem | `Shared Function NewMenuItem(dpi As IDataPortalInfo) As clsMenuItem` | Factory that creates a new item ready for `Save`; the key is server-assigned on insert ([BR-MENU-014](../../business-rules.md#br-menu-014-sequence-assigned-identity)). |
| GetMenuItem | `Shared Function GetMenuItem(dpi As IDataPortalInfo, menuItemSeqNum As Decimal) As clsMenuItem` | Factory that retrieves one item by its key ([SQL-022](../../sql/SQL-022-retrieve-menu-item-by-seq.md)). |
| Save | `Sub Save()` | Persists the object and cascades to `SecurityGroups` ([BR-MENU-016](../../business-rules.md#br-menu-016-audit-stamp-on-insert-and-update), [BR-MENU-018](../../business-rules.md#br-menu-018-save-only-when-dirty), [BR-MENU-021](../../business-rules.md#br-menu-021-cascading-child-security-group-save)). |
| Delete | `Sub Delete()` | Removes the row and returns the object to a new, unsaved state; does not cascade-delete child grants ([BR-MENU-022](../../business-rules.md#br-menu-022-delete-returns-object-to-new-state)). |

## Inherited public members

Members in this section are inherited from `clsBusinessBase` in `SAIF.Framework.Core` (delivered by the `SAIF.BOF.Framework` package). They are available on this type through inheritance.

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| Rules | `ReadOnly Property Rules As clsRulesManager` | Exposes the object's rule manager, used to register and evaluate validation rules.† | `SAIF.Framework.Core` — `clsBusinessBase` |
| BeginEdit | `Sub BeginEdit()` | Begins an editable transaction on the object, snapshotting current state for a later cancel.† | `SAIF.Framework.Core` — `clsBusinessBase` |
| CancelEdit | `Sub CancelEdit()` | Reverts the object to the state captured by the most recent `BeginEdit`.† | `SAIF.Framework.Core` — `clsBusinessBase` |
| ApplyEdit | `Sub ApplyEdit()` | Commits the in-progress edit, discarding the `BeginEdit` snapshot.† | `SAIF.Framework.Core` — `clsBusinessBase` |
| SetPreviousLink | `Sub SetPreviousLink(item As ILinkItem)` | Sets the previous node in a doubly linked list of business objects.† | `SAIF.Framework.Core` — `clsBusinessBase` |
| SetNextLink | `Sub SetNextLink(item As ILinkItem)` | Sets the next node in a doubly linked list of business objects.† | `SAIF.Framework.Core` — `clsBusinessBase` |
| InsertLinkAfter | `Sub InsertLinkAfter(item As ILinkItem)` | Inserts the given item immediately after this object in a linked sequence.† | `SAIF.Framework.Core` — `clsBusinessBase` |

## Related documentation
- [Index](../../index.md)
- [Overview](../../overview.md)
- [Architecture](../../architecture.md)
- [Operations and processes](../../operations-processes.md)
- [Business rules](../../business-rules.md)
- [Database tables](../../database-tables.md)
- [API reference](../index.md)

> **Note:** Statements marked with `*` were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with `†` were retrieved from dependency library documentation via the Legends CLI RAG service. They describe inherited behavior from the indicated origin library and should be verified if the dependency version changes.

## Sources
- SAIF.Business.Menu/clsMenuItem.vb
