GridPanel - Context Menu

  1. #1

    GridPanel - Context Menu

    I am setting the contextmenuID for a gridpanel and have the context menu (color pallet) set - but when I right click on the GP - the menu does not show up - does it work on the gridpanel? Do I need to set a specific listener?
    Last edited by Daniil; Sep 29, 2011 at 10:03 AM.
  2. #2

    RE: [CLOSED] GridPanel - Context Menu

    I set it to the window and it worked - any way to get it on the row level of the GP?
  3. #3

    RE: [CLOSED] GridPanel - Context Menu

    Hi,

    The GridPanel has RowContextMenu listener. You can habdle it for showing menu

    Please see the following sample:

    <%@ Page Language="C#" %>
    
    <%@ Register Assembly="Coolite.Ext.Web" Namespace="Coolite.Ext.Web" TagPrefix="ext" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Ext.IsAjaxRequest)
            {
                this.Store1.DataSource = new object[]
                {
                    new object[] {"3m Co", 71.72, 0.02, 0.03, "9/1 12:00am"},
                    new object[] {"Alcoa Inc", 29.01, 0.42, 1.47, "9/1 12:00am"},
                    new object[] {"Altria Group Inc", 83.81, 0.28, 0.34, "9/1 12:00am"}
                };
    
                this.Store1.DataBind();
            }
        }
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title></title>
        
        <style type="text/css">
            .company-label
            {
                font-weight:bold;
                font-size:12px;
                padding:5px 0px 5px 28px;            
                width:150px;
            }
        </style>
    </head>
    <body>
        <form id="form1" runat="server">
            <ext:ScriptManager ID="ScriptManager1" runat="server" />
            
            <ext:Store ID="Store1" runat="server">
                <Reader>
                    <ext:ArrayReader>
                        <Fields>
                            <ext:RecordField Name="company" />
                            <ext:RecordField Name="price" Type="Float" />
                            <ext:RecordField Name="change" Type="Float" />
                            <ext:RecordField Name="pctChange" Type="Float" />
                            <ext:RecordField Name="lastChange" Type="Date" DateFormat="n/j h:ia" />
                        </Fields>
                    </ext:ArrayReader>
                </Reader>
            </ext:Store>
            
            <ext:GridPanel 
                ID="GridPanel1" 
                runat="server" 
                StoreID="Store1" 
                StripeRows="true"
                Title="Array Grid" 
                TrackMouseOver="true"
                Width="600" 
                Height="350"
                AutoExpandColumn="Company">
                <ColumnModel ID="ColumnModel1" runat="server">
                    <Columns>
                        <ext:Column ColumnID="Company" Header="Company" Width="160" Sortable="true" DataIndex="company" />
                        <ext:Column Header="Price" Width="75" Sortable="true" DataIndex="price">
                            <Renderer Format="UsMoney" />
                        </ext:Column>
                        <ext:Column Header="Change" Width="75" Sortable="true" DataIndex="change"/>
                        <ext:Column Header="Change" Width="75" Sortable="true" DataIndex="pctChange"/>
                        <ext:Column Header="Last Updated" Width="85" Sortable="true" DataIndex="lastChange">
                            <Renderer Fn="Ext.util.Format.dateRenderer('m/d/Y')" />
                        </ext:Column>
                    </Columns>
                </ColumnModel>
                <SelectionModel>
                    <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true"/>
                </SelectionModel>
                <Listeners>
                    <RowContextMenu Handler="e.preventDefault(); #{RowContextMenu}.dataRecord = this.store.getAt(rowIndex);#{RowContextMenu}.showAt(e.getXY());" />
                </Listeners>
            </ext:GridPanel>  
            
            <ext:Menu ID="RowContextMenu" runat="server">
                <Items>
                    <ext:TextMenuItem ID="CompanyLabel" runat="server" CtCls="company-label"  />
                    <ext:MenuItem runat="server" Text="Delete" Icon="Delete">
                        <Listeners>
                            <Click Handler="Ext.Msg.alert(this.parentMenu.dataRecord.data.company, 'Delete');" />
                        </Listeners>
                    </ext:MenuItem>
                    <ext:MenuItem runat="server" Text="Print" Icon="Printer">
                        <Listeners>
                            <Click Handler="Ext.Msg.alert(this.parentMenu.dataRecord.data.company, 'Print');" />
                        </Listeners>
                    </ext:MenuItem>
                </Items>
                <Listeners>
                    <BeforeShow Handler="#{CompanyLabel}.el.update(this.dataRecord.data.company);" />
                </Listeners>
            </ext:Menu>
        </form>
    </body>
    </html>

  4. #4

    RE: [CLOSED] GridPanel - Context Menu

    Perfect! Thanks!!! Do you know how to select a row on right click as well?
  5. #5

    RE: [CLOSED] GridPanel - Context Menu

    Hi,

    Just add to the RowContextMenu listener

    this.getSelectionModel().selectRow(rowIndex);

  6. #6
    how do i get row data for sub menu like this

    <ext:MenuItem ID="mnCallForMeeting" runat="server" Text="Call For Meeting" HideOnClick="false">
                    <Menu>
                        <ext:Menu ID="subEmailSMSCall" runat="server">
                            <Items>
                                <ext:MenuItem ID="subEmail" runat="server" Text="Send E-Mail" Icon="Email">
                                    <DirectEvents>
                                        <Click OnEvent="OnEmailSendClick">
                                            <ExtraParams>
                                                <ext:Parameter Name="Lid" Value="this.parentMenu.dataRecord.data.RefNo" Mode="Raw" />
                                            </ExtraParams>
                                            <EventMask ShowMask="true" Target="CustomTarget" CustomTarget="grdLeave" />
                                        </Click>
                                    </DirectEvents>
                                </ext:MenuItem>
                                <ext:MenuItem ID="subSms" runat="server" Text="Send SMS" Icon="Mail" />
                            </Items>
                        </ext:Menu>
                    </Menu>
    </ext:MenuItem>
    this.parentMenu.dataRecord.data.RefNo this code not working :(
  7. #7
    Hi,

    I gues that in your case should be
    this.parentMenu.parentMenu.dataRecord.data.RefNo
    or
    #{mnCallForMeeting}.dataRecord.data.RefNo
  8. #8
    hi Vladimir

    superb.... it's worked .. :) :) :) thanks a lot for your help appreciate that :)
  9. #9

    GridPanel - Context Menu

    Hi Vladimir,

    Your solution is very fine,
    but my application the context menus are dynamic and it set to an grid cell mouse over.


    Thanks....!

Similar Threads

  1. [CLOSED] GridPanel - Context Menu (deleting gridpanel row)
    By digitek in forum 1.x Legacy Premium Help
    Replies: 4
    Last Post: Jul 27, 2012, 8:22 AM
  2. [CLOSED] Code example for GridPanel context menu?
    By vadym.f in forum 1.x Legacy Premium Help
    Replies: 12
    Last Post: Feb 29, 2012, 3:17 PM
  3. [CLOSED] Context menu in gridpanel
    By Raynald_Fontaine in forum 1.x Legacy Premium Help
    Replies: 3
    Last Post: Aug 26, 2010, 2:57 PM
  4. Gridpanel Editor - Textfield Context Menu
    By Tbaseflug in forum 1.x Help
    Replies: 7
    Last Post: Sep 15, 2009, 8:43 PM
  5. [CLOSED] Context Menu for GridPanel rows
    By juanpablo.belli@huddle.com.ar in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Mar 16, 2009, 2:18 PM

Tags for this Thread

Posting Permissions