Hi Trevor,

On Sep 11, 2009, at 5:12 AM, Klaus Major wrote:

Hi all (and Trevor :-)

Hi Klaus :-)

Any hints on how to popup a menu in the "Editor field" of a DataGrid?
I want to let the user choose pre-made text to insert into that column, know what I mean?
This lesson shows how to trigger the data grid mousedown code before displaying a contextual: How Do I Show a Contextual Menu?: <http://revolution.screenstepslive.com/spaces/revolution/manuals/datagrid/lessons/2962 > Although the example script would be placed in the data grid group script itself you could just as easily place the code in the behavior for a custom column template: How Do I Customize A Table's Columns?: <http://revolution.screenstepslive.com/spaces/revolution/manuals/datagrid/lessons/3436-How-Do-I-Customize-A-Table-s-Columns- >

Or if that is not possible, I could also need this when right- clicking on any column,
so I can insert the chosen text into the clicked column.

The popup button will NOT be part of the DataGrid.

As long as the popup menu button is on the card you won't have any problems. What you do need to do, however, is have the popup send a message back to the custom column control so that you can update the data grid value. I usually do this by setting a custom property on the button before displaying it. So below you will find one way to approach this.

-- Column behavior script

on mouseDown pMouseBtnNum
   dgMouseDown pMouseBtnNum
   if pMouseBtnNum is 3 then
set the uTarget of button "MyContextualMenu" to the long id of me
       popup button "MyContextualMenu"
   end if
end mouseDown

Then in the menuPick handler of "MyContextualMenu" I would do something like this:

-- button "MyContextualMenu" script

on menuPick pChosen
   dispatch "UpdateColumnValue" to the uTarget of me with pChosen
end menuPick

Now you just add the UpdateColumnValue command to the column behavior script. The code will look just like any other code in the docs that update data grid values.

-- Column behavior script

command UpdateColumnValue pValue
   put the dgIndex of the me into theIndex
put the dgDataOfIndex[theIndex] of the dgControl of me into theDataA
   put pValue into theDataA[the dgColumn of me]
   set the dgDataOfIndex[theIndex] of the dgControl of me to theDataA
end UpdateColumnValue

--
Trevor DeVore
Blue Mango Learning Systems
ScreenSteps: http://www.screensteps.com
Developer Resources: http://revolution.bluemangolearning.com

thanks a LOT for this!
Will try later at home.


Best

Klaus

--
Klaus Major
http://www.major-k.de
[email protected]

_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to