LiveCode LessonsLiveCode Data Grid Working With Data Grid TablesHow Do I Display a Contextual Menu When the User Clicks on a Column Header?

How Do I Display a Contextual Menu When the User Clicks on a Column Header?

Overview

Overview

This lesson will show you how to display a contextual menu (1) when the user clicks on a column header in a Data Grid table (2).

The Code

The Code

Let's look at some RevTalk code that will display a contextual menu. The code is located in the Data Grid group script.

A contextual menu is displayed when during the mouseDown message when the user clicks with the right mouse button (1).

To determine if the user clicked on a column header you can check whether or not the dgHeaderControl property of the control that was clicked on (the target) is empty (2). If the property is not empty then you know that the user clicked on a column header.

Once you know that the user clicked on a column header you can display the contextual menu. In this example I take the name of the column that was clicked on (3) and append " Popup" to it in order to get the name of the popup button to display (4).

==========

Copy & Paste

==========

on mouseDown pBtnNum
	## Let Data Grid process mouseDown 
	dgMouseDown pBtnNum	
	if pBtnNum is 3 then
		if the dgHeaderControl of the target is not empty then
			## the user clicked on a column header
			
			## Get column name
			put the dgColumn of the target into theColumn
			
			## Get name of contextual button to use
			put theColumn && "Popup" into theContextualButtonName
			
			## Display contextual if exists
			if there is a button theContextualButtonName then
				popup button theContextualButtonName
			end if
		end if
	end if
end mouseDown

The Result

The Result

Now when I right-click on the State column the State Popup popup button is displayed as a contextual menu.

0 Comments

Add your comment

E-Mail me when someone replies to this comment