Skip to main content

ASPxClientSpreadsheetPopupMenuShowingEventArgs.menuType Property

Gets the currently displayed context menu’s type.

Declaration

menuType: ASPxClientSpreadsheetPopupMenuType

Property Value

Type Description
ASPxClientSpreadsheetPopupMenuType

One of the ASPxClientSpreadsheetPopupMenuType enumeration values.

Remarks

The menuType property allows you to determine the type of element for which a context menu is displayed.

See Online Demo: Context Menu Customization

Example

This sample illustrates how to prevent the context menu display for worksheet tabs and to add a custom menu item to the context menu displayed for row headings.

The context menu is dynamically processed in the ASPxClientSpreadsheet.PopupMenuShowing client event. The current context menu type is determined through the ASPxClientSpreadsheetPopupMenuShowingEventArgs.menuType property. A custom menu item is implemented as a new item containing a custom command name.

Clicks on the custom menu item with the custom command name are processed by using the ASPxClientSpreadsheet.CustomCommandExecuted client event. Within its handler, the activated custom command is identified and the corresponding action (insertion of a row with the current date and time values) is performed through a callback to the server.

using DevExpress.Spreadsheet;
using DevExpress.Web;
using DevExpress.Web.ASPxSpreadsheet;
using DevExpress.Web.ASPxSpreadsheet.Internal;
using DevExpress.Web.Office;
using DevExpress.Web.Office.Internal;

...
    protected void Page_Load(object sender, EventArgs e) {
        if(!Page.IsPostBack) {
            string filePath = Server.MapPath("~/App_Data/WorkDirectory/DayBook.xlsx");
            spreadsheet.Open(filePath);
        }
    }

    protected void spreadsheet_Callback(object sender, CallbackEventArgsBase e) {
        IWorkbook currentWorkbook = spreadsheet.Document;
        Worksheet currentWorksheet = currentWorkbook.Worksheets.ActiveWorksheet;
        currentWorkbook.BeginUpdate();
        currentWorksheet.InsertCells(currentWorksheet.Selection, InsertCellsMode.EntireRow);
        FillInTemplateValues(currentWorksheet);
        currentWorkbook.EndUpdate();
    }

    void FillInTemplateValues(Worksheet currentWorksheet) {
        int currentRowIndex = currentWorksheet.Selection.TopRowIndex;
        currentWorksheet.Cells[currentRowIndex, 1].Value = DateTime.Now.Date;
        currentWorksheet.Cells[currentRowIndex, 2].Value = DateTime.Now.TimeOfDay;
        currentWorksheet.Cells[currentRowIndex, 2].NumberFormat = "h:mm";
    }
See Also