[CLOSED] Grid record.data for AjaxMethods

  1. #1

    [CLOSED] Grid record.data for AjaxMethods

    Hello,

    I am wondering, if I can sent specific record.data of a grid store as parameter to an Ajax method.

    E.g. I have the following:

    
    <ext:Store ID="CustomerStore" runat="server" AutoLoad="true" DataSourceID="objectDataSourceCustomer"
        OnRefreshData="CustomerStore_Refresh" RemoteSort="true">
        <Proxy>
            <ext:DataSourceProxy />
        </Proxy>
        <BaseParams>
            <ext:Parameter Name="search" Encode="false" Mode="Raw" Value="#{textFieldSearch}.getValue()" />
        </BaseParams>
        <AutoLoadParams>
            <ext:Parameter Name="start" Value="0" Mode="Raw" />
            <ext:Parameter Name="limit" Value="5" Mode="Raw" />
        </AutoLoadParams>
        <Reader>
            <ext:JsonReader ReaderID="Personal_Id" TotalProperty="totalCount">
                <Fields>
                    <ext:RecordField Name="Personal_Id" Type="Int" />
                    <ext:RecordField Name="Vorname" />
                    <ext:RecordField Name="Nachname" />
                    <ext:RecordField Name="Username" />
                    <ext:RecordField Name="Kostenstelle_Code" />
                </Fields>
            </ext:JsonReader>
        </Reader>
    </ext:Store>
    
    
    //...
    
     <ext:GridPanel ID="CustomerPanel" Height="560" runat="server" StoreID="CustomerStore"
                        AutoExpandColumn="Personal" Header="false" EnableHdMenu="false">
                        <TopBar>
                            <ext:Toolbar ID="TopToolbar" runat="server">
                                <Items>
                                    <ext:TextField ID="textFieldSearch" EmptyText="Suchwort..." runat="server" EnableKeyEvents="true">
                                        <Listeners>
                                            <KeyPress Handler="#{CustomerPanel}.reload();" Buffer="500" />
                                        </Listeners>
                                    </ext:TextField>
                                </Items>
                            </ext:Toolbar>
                        </TopBar>
                        <ColumnModel>
                            <Columns>
                                <ext:Column ColumnID="Username" Sortable="false" Width="400" Header="">
                                    <Renderer Fn="templateUsername" />
                                </ext:Column>
                                <ext:Column ColumnID="Personal" Sortable="false" Header="">
                                    <Renderer Fn="templateEPOSCustomSelector" />
                                   
                                </ext:Column>
                            </Columns>
                        </ColumnModel>
                        <BottomBar>
                            <ext:PagingToolbar ID="PagingBar" runat="server" StoreID="CustomerStore" PageSize="5" />
                        </BottomBar>
                        <LoadMask ShowMask="true" />
                        <SelectionModel>
                            <ext:RowSelectionModel />
                        </SelectionModel>
                        <Listeners>
                            <CellClick Handler="#{AjaxMethods}.SetUser(record.data.Personal_Id);" />
             
                        </Listeners>
                    </ext:GridPanel>
                </Center>

    And my AjaxMethod:

    [AjaxMethod]
    public void SetUser(int userId)
    {
      _selectedUser = new Ps_Personal_T(userId);
     Ext.Msg.Alert("Name", _selectedUser.Username).Show();
    }

    My Ajax-Method is never called for this specifc line:

    <Listeners>
    
            <CellClick Handler="#{AjaxMethods}.SetUser(record.data.Personal_Id);" />
     </Listeners>
    When I run a static example with:

    
    <Listeners>
                
    
    <CellClick Handler="#{AjaxMethods}.SetUser('837');" />
    
    
    </Listeners>
    It works fine. So I guess my AjaxMethod is ok. How can I pass values of my Grid Data Store to the Ajax-Method?
    Especially the JsonReader ReaderID of my Store?



    Regards,

    Martin
  2. #2

    RE: [CLOSED] Grid record.data for AjaxMethods

    Hi,

    CellClick doesn't have 'record' argument. You should use the following handler
    andler="#{AjaxMethods}.SetUser(this.store.getAt(rowIndex).data.Personal_Id);"

Similar Threads

  1. Replies: 4
    Last Post: Apr 27, 2012, 2:07 PM
  2. [CLOSED] Get record.data in RowDblClick
    By Jurke in forum 1.x Legacy Premium Help
    Replies: 4
    Last Post: Feb 07, 2012, 11:39 AM
  3. Data updated in store with e.record.set() is not getting reflected in grid
    By n_s_adhikari@rediffmail.com in forum 1.x Help
    Replies: 2
    Last Post: May 07, 2010, 5:16 AM
  4. [CLOSED] BeforeEdit 'record.data' is null or not an object
    By sharif in forum 1.x Legacy Premium Help
    Replies: 3
    Last Post: Mar 13, 2010, 2:54 PM
  5. Ext.data.Record constructor
    By mthird in forum 1.x Help
    Replies: 0
    Last Post: Oct 14, 2008, 4:05 PM

Posting Permissions