[CLOSED] Hot to remove a DirectEvent from a GridPanel in Javascript

  1. #1

    [CLOSED] Hot to remove a DirectEvent from a GridPanel in Javascript

    Hi

    I need to remove a direct event when a page is loading, so i made a function is called in the "DocumentReady" listener of the resource manager to do it.
    I found that the gridPanel has the atribute "DirectEvents", but theres nothing i can do with it to remove the one i want.

    Can you guide me please??

    Tanks in advance.

    I dont know if you need it, but here is the code of my grid.
    <ext:GridPanel ID="GridResults" Height="245" StoreID="Store1" runat="server" TrackMouseOver="true" StripeRows="true">
                                    <TopBar>
                                        <ext:Toolbar ID="tbBusquedaPersona" runat="server">
                                            <Items>
                                                <ext:TabStrip ID="tabPersona" runat="server">
                                                    <Items>
                                                        <ext:TabStripItem runat="server" Title="Personas" ActionItemID="pnlPersonas">
                                                        </ext:TabStripItem>
                                                    </Items>
                                                </ext:TabStrip>
                                                <ext:ToolbarSeparator />
                                                <ext:Button ID="btnNuevo" runat="server" Width="70" IconAlign="left" Text="Nueva"
                                                    Icon="UserAdd">
                                                    <Listeners>
                                                        <Click Handler="managedCommand('New', '', '', '', #{GridResults})" />
                                                    </Listeners>
                                                </ext:Button>
                                                
                                                <ext:ToolbarSeparator />
                                                <ext:Button ID="btnDefuncion" Disabled="true" runat="server" Width="70" IconAlign="left"
                                                    Text="Defuncion" Icon="UserDelete">
                                                    <DirectEvents>
                                                        <Click OnEvent="buttonDefuncion_Click">
                                                            <ExtraParams>
                                                                <ext:Parameter Name="CadenaDatos" Value="Ext.encode(#{GridResults}.getRowsValues({selectedOnly:true}))"
                                                                    Mode="Raw" />
                                                            </ExtraParams>
                                                        </Click>
                                                    </DirectEvents>
                                                </ext:Button>
                                                <ext:ToolbarSeparator />
                                                <ext:Button ID="btnDocumentos" Disabled="true" Width="70" runat="server" IconAlign="left"
                                                    Text="Documentos" Icon="BookGo">
                                                    <DirectEvents>
                                                        <Click OnEvent="buttonDocumentos_Click">
                                                            <ExtraParams>
                                                                <ext:Parameter Name="Modo" Value="0" Mode="Raw" />
                                                                <ext:Parameter Name="CadenaDatos" Value="Ext.encode(#{GridResults}.getRowsValues({selectedOnly:true}))"
                                                                    Mode="Raw" />
                                                            </ExtraParams>
                                                        </Click>
                                                    </DirectEvents>
                                                </ext:Button>
                                            </Items>
                                        </ext:Toolbar>
                                    </TopBar>
                                    
                                    <ColumnModel ID="ColumnModel1" runat="server">
                                        <Columns>
                                            <ext:Column Header="id" Hidden="true" DataIndex="id" />
                                            <ext:Column Width="160" Header="Número Doc" DataIndex="DocumentoDescripcion" />
                                            <%--                              <ext:Column Width="120" Header="Número Doc" DataIndex="docNumber" />--%>
                                            <ext:Column Width="120" Header="Género" DataIndex="gender" />
                                            <ext:Column Width="150" Header="Apellido/s" DataIndex="lastName" />
                                            <ext:Column Width="150" Header="Nombre/s" DataIndex="firstName" />
                                            <ext:Column Width="120" Header="Fecha de Nac." DataIndex="FormatedDate">
                                                <%--        <Renderer Fn="Ext.util.Format.dateRenderer('d/m/Y')" />--%>
                                            </ext:Column>
                                            <ext:Column Width="120" Hidden="true" Header="Calidad" DataIndex="docQuality" />
                                            <ext:BooleanColumn DataIndex="IsAlive" Align="Center" Width="50" TrueText="SI" FalseText="NO"
                                                Header="Vive" />
                                            <ext:CommandColumn Align="Center" Width="80">
                                                <Commands>
                                                    <ext:GridCommand Icon="NoteEdit" CommandName="Edit" ToolTip-Text="Editar" />
                                                    <ext:GridCommand Icon="Delete" CommandName="Delete" ToolTip-Text="Borrar" />
                                                </Commands>
                                            </ext:CommandColumn>
                                        </Columns>
                                    </ColumnModel>
                                    <SelectionModel>
                                        <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true">
                                            <Listeners>
                                                <RowSelect Handler="#{btnDocumentos}.setDisabled(false);#{btnDefuncion}.setDisabled(false);"
                                                    Buffer="250" />
                                            </Listeners>
                                        </ext:RowSelectionModel>
                                    </SelectionModel>
                                    <DirectEvents>
                                        <DblClick OnEvent="btnSelecccionar_Click">
                                            <EventMask ShowMask="true"/>
                                            <ExtraParams>
                                                <ext:Parameter Name="CadenaDatos" Value="Ext.encode(#{GridResults}.getRowsValues({selectedOnly:true}))"
                                                    Mode="Raw" />
                                            </ExtraParams>
                                        </DblClick>
                                    </DirectEvents>
                                    <BottomBar>
                                        <ext:PagingToolbar runat="server" ID="pagingToolbar" StoreID="Store1" PageSize="7"
                                            DisplayInfo="true" AutoWidth="true" />
                                    </BottomBar>
                                    <Listeners>
                                        <Command Handler="managedCommand(command, record, rowIndex, colIndex, #{GridResults}, #{isAdminHiden})" />
                                    </Listeners>
                                    <View>
                                        <ext:GridView ForceFit="true">
                                        </ext:GridView>
                                    </View>
                                </ext:GridPanel>
    Last edited by Daniil; May 02, 2011 at 8:05 PM. Reason: [CLOSED]
  2. #2
    Hi,

    Please provide more details about your requirement?

    I believe there is a better way than setting DirectEvent and trying to remove it.

    Generally, DirectEvent doesn't make any sense before page loads.
  3. #3
    Sorry, i ll give you more details ...

    I have a grid with a doubleClick event attached. I a few cases, when my page loads, i need to disable that event.

    Here is my example ...

    <%@ Page Language="C#"  %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <head id="Head1" runat="server">
        <title></title>
    
            <script type="text/javascript">
                
                function analizeFewThings() {
                    // TOOK OFF THE REAL IF FOR THE EXAMPLE
                    if (2 > 1) {
                    // HERE I NEED TO DISABLE THE DIRECT EVENT                    
                    } 
                }
        </script>
    
    </head>
    <body>
        <form id="form1" runat="server">
        <ext:ResourceManager ID="ScriptManager1" runat="server" RethrowAjaxExceptions="false">
            <Listeners>
                  <DocumentReady Handler="analizeFewThings();" />
            </Listeners>
        </ext:ResourceManager>
        
        <ext:Store ID="Store1" runat="server" OnRefreshData="Store_Refresh" UseIdConfirmation="true"
            AutoLoad="false">
            <Reader>
                <ext:JsonReader>
                    <Fields>
                        <ext:RecordField Name="id" />
                       </Fields>
                </ext:JsonReader>
            </Reader>
        </ext:Store>
        
        <ext:Viewport ID="Viewport1" runat="server" Layout="Fit">
            <Items>
                <ext:Panel ID="pnlPrincipal" Icon="User" ButtonAlign="Center" Width="685" Frame="true" runat="server">
                    <Items>
                        
                                <ext:GridPanel ID="GridResults" Height="245" StoreID="Store1" runat="server" TrackMouseOver="true" StripeRows="true">
                                                                    
                                    <ColumnModel ID="ColumnModel1" runat="server">
                                        <Columns>
                                            <ext:Column Header="id" Hidden="true" DataIndex="id" />
                                        </Columns>
                                    </ColumnModel>
                                    <SelectionModel>
                                        <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true">
                                            <Listeners>
                                                <RowSelect Handler=""
                                                    Buffer="250" />
                                            </Listeners>
                                        </ext:RowSelectionModel>
                                    </SelectionModel>
                                    <DirectEvents>
                                        <DblClick OnEvent="btnSelecccionar_Click">
                                            <EventMask ShowMask="true"/>
                                            <ExtraParams>
                                                <ext:Parameter Name="CadenaDatos" Value="Ext.encode(#{GridResults}.getRowsValues({selectedOnly:true}))"
                                                    Mode="Raw" />
                                            </ExtraParams>
                                        </DblClick>
                                    </DirectEvents>
                                    
    
                                </ext:GridPanel>
                            </Items>
     
                </ext:Panel>
            </Items>
        </ext:Viewport>
        </form>
    </body>
    </html>
    The <DblClick OnEvent="btnSelecccionar_Click"> DirectEvent is the one I have to disable.

    Thanks!!
  4. #4
    Well, please specify Before="return !this.locked;".

    Returning false from Before prevents DirectEvent.

    To disable use:
    GridPanel1.locked = true;
    To enable use:
    GridPanel1.locked = false;
  5. #5
    Im trying it but it does not work for me.

    My javascript function is like this ...

    function analizeFewThings() {
                    if (2>1) {
                    GridResults.locked = true;
                    }
                }
    but GridResults.locked is "undefined" for me.
  6. #6
    It's really undefined before first initializing.
  7. #7
    Hi Daniil,

    It is not working for me yet, do not know how the problem is [CLOSED].
    Do you suggest another way for doing this?
  8. #8
    We just mark threads as solved if there is no update from a member during several days. Just feel free to update a thread even if it's marked as solved.

    I have tested the solution I suggested and it appears to be working fine.

    Example
    <%@ Page Language="C#" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!X.IsAjaxRequest)
            {
                Store store = this.GridPanel1.GetStore();
                store.DataSource = new object[] 
                { 
                    new object[] { "test11", "test12", "test13" },
                    new object[] { "test12", "test22", "test23" },
                    new object[] { "test13", "test32", "test33" }
                };
                store.DataBind();
            }
        }
    
        protected void GridPanel_DblClick(object sender, DirectEventArgs e)
        {
            X.Msg.Alert("DirectEvent", "Hello from Server!").Show();
        }
    </script>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Ext.Net Example</title>
    
        <script type="text/javascript">
            var onReady = function () {
                GridPanel1.locked = true;    
            }
        </script>
    </head>
    <body>
        <form runat="server">
        <ext:ResourceManager runat="server">
            <Listeners>
                <DocumentReady Handler="onReady()" />
            </Listeners>
        </ext:ResourceManager>
        <ext:GridPanel ID="GridPanel1" runat="server" AutoHeight="true">
            <Store>
                <ext:Store runat="server">
                    <Reader>
                        <ext:ArrayReader>
                            <Fields>
                                <ext:RecordField Name="test1" />
                                <ext:RecordField Name="test2" />
                                <ext:RecordField Name="test3" />
                            </Fields>
                        </ext:ArrayReader>
                    </Reader>
                </ext:Store>
            </Store>
            <ColumnModel runat="server">
                <Columns>
                    <ext:Column Header="Test1" DataIndex="test1" />
                    <ext:Column Header="Test2" DataIndex="test2" />
                    <ext:Column Header="Test3" DataIndex="test3" />
                </Columns>
            </ColumnModel>
            <DirectEvents>
                <DblClick OnEvent="GridPanel_DblClick" Before="return !this.locked;" />
            </DirectEvents>
        </ext:GridPanel>
        <ext:Button runat="server" Text="Unlock">
            <Listeners>
                <Click Handler="GridPanel1.locked = false;" />
            </Listeners>
        </ext:Button>
        </form>
    </body>
    </html>
  9. #9
    Hi Daniil,

    Sorry for the delay.
    The code is working perfect. I did not understand the "Before" line.
    Once i looked at your code example i realized what you were talking about.

    Tanks a lot!!!

Similar Threads

  1. Replies: 4
    Last Post: Jul 03, 2012, 6:43 PM
  2. [CLOSED] Remove red flag from gridpanel cell in javascript
    By OSYS_FMS in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Mar 06, 2012, 12:13 PM
  3. [CLOSED] selectbox add remove item javascript
    By nhg_itd in forum 1.x Legacy Premium Help
    Replies: 3
    Last Post: Nov 10, 2011, 6:00 AM
  4. [CLOSED] Add/remove columns to <ext:ColumnLayout in DirectEvent
    By Jurke in forum 1.x Legacy Premium Help
    Replies: 12
    Last Post: Sep 05, 2011, 11:45 AM
  5. [CLOSED] How to add tab and remove tab in javascript
    By speedstepmem2 in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Dec 10, 2008, 2:02 AM

Posting Permissions