[CLOSED] Calling server side meathod on keyboard events

  1. #1

    [CLOSED] Calling server side meathod on keyboard events

    Hi,

    How to call a server side method when we hit a key on the keybord.
    Not a javascript function.

  2. #2

    RE: [CLOSED] Calling server side meathod on keyboard events

    Hi,

    For example use KeyMap to listen keys (https://examples1.ext.net/#/Keys/Key...egions_Toggle/) and call AjaxMethod in the key Listener
  3. #3

    RE: [CLOSED] Calling server side meathod on keyboard events

    Can you give a snippet of code?
    2 lines of code to just the
    <Listner>
    </Listner>
  4. #4

    RE: [CLOSED] Calling server side meathod on keyboard events

    Hi,

    <ext:KeyMap ID="KeyMap1" runat="server" Target="={Ext.isGecko ? Ext.getDoc() : Ext.getBody()}">
        <ext:KeyBinding>
            <Keys>
                <ext:Key Code="F1" />
            </Keys>
            <Listeners>
                <Event Handler="Coolite.AjaxMethods.MyMethod();" />
            </Listeners>
        </ext:KeyBinding>   
    </ext:KeyMap>
    
    [AjaxMethod] 
    public void MyMethod()
    {
       //your code
    }
    More about AjaxMethod, see

    https://examples1.ext.net/#/Events/A...hods/Overview/

  5. #5

    RE: [CLOSED] Calling server side meathod on keyboard events

    Hi Valdsch,
    Thanks for the snippet of code, actually I want to get the row value when I press enter key
    I wrote a meathod to get the row value when the user double clicks the row.

    I want to call the same method when the user presses "Enter Key"

    With the below mentioned code I was not able to do so, we need a ajax method to do and it needs parameter values too

    how to get the grid row value in enter key press

    Markup
    
    
    
    <AjaxEvents>
    
    
    <CellDblClick OnEvent="NavigateToDetails" Success="Ext.getBody().mask('Loading...', 'x-loading-mask')" Failure="Ext.MessageBox.alert('Load failed', 'Error during ajax event!');">
    
    
    <EventMask ShowMask="true" Target="CustomTarget" CustomTarget="={#{CoolGrid1}.body}" />
    
    
    <ExtraParams>
    
    
    <ext:Parameter Name="SelectedRecord" Value="Ext.encode(#{CoolGrid1}.getRowsValues(true))"
    
    
    Mode="Raw" />
    
    
    </ExtraParams>
    
    
    </CellDblClick>
    
    
    </AjaxEvents>
    
    
    <KeyMap>
    
    
    <ext:KeyBinding>
    
    
    <keys>
    
    
    <ext:Key Code="ENTER" />
    
    
    </keys>
    
    
    <listeners>
    
    
    <Event Handler="Coolite.AjaxMethod.AjaxNavigateToDetails()" />
    
    
    </listeners>
    
    
    </ext:KeyBinding>
    
    
    </KeyMap>
    Code Behind

    
    
    
    protected void NavigateToDetails(object sender, AjaxEventArgs e)
    
    
    {
    
    
    string JsonRecord = e.ExtraParams["SelectedRecord"];
    
    
    string projectID = "";
    
    
    Dictionary<string, string>[] gridData = JSON.Deserialize<Dictionary<string, string>[]>(JsonRecord);
    
    
    foreach (IDictionary<string, string> JColumn in gridData)
    
    
    {
    
    
    projectID = JColumn ["TaskId"];
    
    
    }
    
    
    if (projectID != ""){
    
    
    Response.Redirect("TestForm.aspx?isproject=1&amp;ListView=Projects&amp;recordid=" + projectID);//&amp;recordid="+sr.RecordID);
    
    
    }
    
    
    }

    Any suggestions ?
  6. #6

    RE: [CLOSED] Calling server side meathod on keyboard events

    Hi,

    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();
            }
        }
        
        protected void NavigateToDetails(object sender, AjaxEventArgs e)
        {
            string JsonRecord = e.ExtraParams["SelectedRecord"];
            Response.Redirect("TestForm.aspx");
        }
    
        [AjaxMethod]
        public void AjaxNavigateToDetails(string records)
        {
            Coolite.Ext.Web.ParameterCollection p = new Coolite.Ext.Web.ParameterCollection();
            p.Add(new Coolite.Ext.Web.Parameter("SelectedRecord", records));
            AjaxEventArgs e = new AjaxEventArgs(p);
            this.NavigateToDetails(GridPanel1, e);
        }
    
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title>Simple Array Grid - Coolite Toolkit Example</title>
    
        <script type="text/javascript">
            var template='{1}';
    
            var change=function(value) {
                return String.format(template,(value>0)?'green':'red',value);
            }
    
            var pctChange=function(value) {
                return String.format(template,(value>0)?'green':'red',value+'%');
            }
        </script>
    
    </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" Sortable="true" DataIndex="company" />
                    <ext:Column Header="Price" Sortable="true" DataIndex="price">
                        <Renderer Format="UsMoney" />
                    </ext:Column>
                    <ext:Column Header="Change" Sortable="true" DataIndex="change">
                        <Renderer Fn="change" />
                    </ext:Column>
                    <ext:Column Header="Change" Sortable="true" DataIndex="pctChange">
                        <Renderer Fn="pctChange" />
                    </ext:Column>
                    <ext:Column Header="Last Updated" 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>
            <AjaxEvents>
                <CellDblClick OnEvent="NavigateToDetails">
                    <EventMask ShowMask="true" />
                    <ExtraParams>
                        <ext:Parameter Name="SelectedRecord" Value="Ext.encode(#{GridPanel1}.getRowsValues(true))"
                            Mode="Raw" />
                    </ExtraParams>
                </CellDblClick>
            </AjaxEvents>
            <KeyMap>
                <ext:KeyBinding>
                    <Keys>
                        <ext:Key Code="ENTER" />
                    </Keys>
                    <Listeners>
                        <Event Handler="Coolite.AjaxMethods.AjaxNavigateToDetails(Ext.encode(#{GridPanel1}.getRowsValues(true)));" />
                    </Listeners>
                </ext:KeyBinding>
            </KeyMap>
        </ext:GridPanel>
        </form>
    </body>
    </html>
  7. #7

    RE: [CLOSED] Calling server side meathod on keyboard events

    Thanks a lot, you solved my problem

Similar Threads

  1. Dynamic Menu Server Side events
    By SeshuKumar in forum 1.x Help
    Replies: 8
    Last Post: Dec 03, 2012, 5:13 AM
  2. [CLOSED] Calling OnRefreshData explicitly after sequence of events
    By nhg_itd in forum 1.x Legacy Premium Help
    Replies: 5
    Last Post: Jun 01, 2012, 10:48 AM
  3. Replies: 6
    Last Post: May 19, 2011, 9:36 AM
  4. [CLOSED] NumberField set client Events server side
    By majestic in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: Dec 05, 2010, 10:03 AM
  5. TriggerField Keyboard events
    By Kalitte in forum 1.x Help
    Replies: 1
    Last Post: Jan 03, 2009, 6:15 AM

Posting Permissions