[CLOSED] Up/Down issue. Need help

  1. #1

    [CLOSED] Up/Down issue. Need help

    Hi folks:

    I'm into this code. Steps to reproduce:
    1. click cell COL_6
    2. move it up to top, before COL_1
    3. Press Lightning button

    ExtraParams["jsonDatos1"] does not have same grid rows have. COL_6 is at bottom instead of top.

    Please can you help me?

    Thanks a million!
    Click image for larger version. 

Name:	Sin título.png 
Views:	75 
Size:	27.8 KB 
ID:	4678

    <%@ Page Language="C#" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <script runat="server">    
        public enum Sort { None = 0, Ascending = 1, Descending = 2 }
    
        protected void btnAutoGenerate_Click(object sender, DirectEventArgs e)
        {
            X.MessageBox.Alert("", e.ExtraParams["jsonDatos1"]).Show();
        }
    
        protected void Page_Load(object sender, EventArgs e)
        {
            if (X.IsAjaxRequest == false)
            {
                System.Collections.Generic.List<object> data = new System.Collections.Generic.List<object>();
                data.Add(new { Description = "my table 1", Value = "TABLE_1" });
    
                Store store = this.cboTables.GetStore();
                store.DataSource = data;
                store.DataBind();
    
                store = new Store();
                data = new System.Collections.Generic.List<object>();
                data.Add(new { Description = "my col. 1", Value = "COL_1" });
                data.Add(new { Description = "my col. 2", Value = "COL_2" });
                data.Add(new { Description = "my col. 3", Value = "COL_3" });
                data.Add(new { Description = "my col. 4", Value = "COL_4" });
                data.Add(new { Description = "my col. 5", Value = "COL_5" });
                data.Add(new { Description = "my col. 6", Value = "COL_6" });
                store = this.cboColumns.GetStore();
                store.DataSource = data;
                store.DataBind();
    
                store = new Store();
                data = new System.Collections.Generic.List<object>();
                data.Add(new { Description = Sort.None, Value = (int)Sort.None });
                data.Add(new { Description = Sort.Ascending, Value = (int)Sort.Ascending });
                data.Add(new { Description = Sort.Descending, Value = (int)Sort.Descending });
                store = this.StoreOrderBy;
                store.DataSource = data;
                store.DataBind();
    
                store = new Store();
                data = new System.Collections.Generic.List<object>();
                data.Add(new { Id = 1, Table_Name = "TABLE_1", Column_Name = "COL_1", OrderBy = Sort.None });
                data.Add(new { Id = 2, Table_Name = "TABLE_1", Column_Name = "COL_2", OrderBy = Sort.None });
                data.Add(new { Id = 3, Table_Name = "TABLE_1", Column_Name = "COL_3", OrderBy = Sort.None });
                data.Add(new { Id = 4, Table_Name = "TABLE_1", Column_Name = "COL_4", OrderBy = Sort.None });
                data.Add(new { Id = 5, Table_Name = "TABLE_1", Column_Name = "COL_5", OrderBy = Sort.None });
                data.Add(new { Id = 6, Table_Name = "TABLE_1", Column_Name = "COL_6", OrderBy = Sort.None });
                store = this.gridCriteria.GetStore();
                store.DataSource = data;
                store.DataBind();
            }
        }
    </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 id="Head1" runat="server">
        <title></title>
        <script type="text/javascript" src="https://getfirebug.com/firebug-lite.js"></script>
        <!--INICIO - do not allow changing a row if the current one is invalid  -->
        <ext:ResourcePlaceHolder ID="ResourcePlaceHolder1" runat="server" Mode="ScriptFiles" />
        <script type="text/javascript">        Ext.ux.grid.RowEditor.prototype.startEditing = Ext.ux.grid.RowEditor.prototype.startEditing.createInterceptor(function () { if (this.editing && !this.isValid()) { return false; } });      </script>
        <!--FIN - do not allow changing a row if the current one is invalid  -->
        <script type="text/javascript">
            function pagerCriteriaUpdate() {
                var rowsPerPage = pagerCriteriaComboBox.getValue();
                if (rowsPerPage == "ALL") {
                    rowsPerPage = storeCriteria.totalLength;
                }
    
                var NewVariable = parseInt(rowsPerPage);
                storeCriteria.start = 1;
                storeCriteria.limit = NewVariable;
                pagerCriteria.pageSize = NewVariable;
                pagerCriteria.doLoad(pagerCriteria.cursor);
                pagerCriteria.moveFirst();
            };
    
            var GroupByRenderer = function (value) {
                var r = StoreGroupBy.getById(value);
    
                if (Ext.isEmpty(r)) {
                    return "";
                }
    
                return r.data.Description;
            };
    
            var OrderByRenderer = function (value) {
                var r = StoreOrderBy.getById(value);
    
                if (Ext.isEmpty(r)) {
                    return "";
                }
    
                return r.data.Description;
            };
    
            var ShowHiddeAggregate = function () {
                var mostrar = btnAggregateControl.pressed;
                gridCriteria.getColumnModel().setHidden(6, !mostrar);
            }
    
            var NewRow = function () {
                btnAddCriteria.disabled = true;
                gridCriteria.getRowEditor().stopEditing();
    
                var s = storeCriteria.save();
                var table_count = StoreTables.totalLength;
                var table_name = "";
    
                if (table_count == 1)
                    table_name = StoreTables.getAt(0).id;
    
                var rowIndex = gridCriteria.addRecord({
                    Table_Name: table_name,
                    Column_Name: "",
                    Alias: "",
                    Output: true,
                    OrderBy: "",
                    GroupBy: "",
                    Filter: "",
                    Or1: "",
                    Or2: "",
                    Or3: ""
                });
    
                gridCriteria.getView().refresh();
                gridCriteria.getSelectionModel().selectRow(rowIndex);
                gridCriteria.getRowEditor().startEditing(rowIndex);
            }
    
            var CancelEdition = function () {
                if (this.record.newRecord) {
                    this.grid.getStore().remove(this.record);
                    this.grid.getView().refresh();
                }
                btnAddCriteria.disabled = false;
            }
    
            var BeforeEdition = function () {
                btnAddCriteria.disabled = true;
            }
    
            var UpdateEdition = function () {
                if (this.record.newRecord) {
                    this.record.newRecord = false;
                    this.record.dirty = false;
                }
                btnAddCriteria.disabled = false;
            }
    
            function move(grid, up) {
                var ds = grid.getStore();
                var record = grid.getSelectionModel().getSelected();
                var rindex = ds.indexOf(record);
                rindex += up ? -1 : 1;
    
                if (rindex < 0 || rindex >= ds.getCount()) {
                    return;
                }
    
                ds.remove(record);
                ds.insert(rindex, record);
                grid.getSelectionModel().selectRecords([record]);
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <ext:ResourceManager ID="ResourceManager1" runat="server" />
        <ext:Store ID="storeCriteria" runat="server" RefreshAfterSaving="None">
            <Reader>
                <ext:JsonReader IDProperty="Id">
                    <Fields>
                        <ext:RecordField Name="Id" Type="String" />
                        <ext:RecordField Name="Table_Name" Type="String" />
                        <ext:RecordField Name="Column_Name" Type="String" />
                        <ext:RecordField Name="Alias" Type="String" />
                        <ext:RecordField Name="Output" Type="Boolean" />
                        <ext:RecordField Name="OrderBy" Type="String" />
                        <ext:RecordField Name="GroupBy" Type="String" />
                        <ext:RecordField Name="Filter" Type="String" />
                        <ext:RecordField Name="Or1" Type="String" />
                        <ext:RecordField Name="Or2" Type="String" />
                        <ext:RecordField Name="Or3" Type="String" />
                    </Fields>
                </ext:JsonReader>
            </Reader>
        </ext:Store>
        <ext:Store ID="StoreOrderBy" runat="server">
            <Reader>
                <ext:JsonReader IDProperty="Value">
                    <Fields>
                        <ext:RecordField Name="Value" Type="String" />
                        <ext:RecordField Name="Description" Type="String" />
                    </Fields>
                </ext:JsonReader>
            </Reader>
        </ext:Store>
        <ext:Store ID="StoreGroupBy" runat="server">
            <Reader>
                <ext:JsonReader IDProperty="Value">
                    <Fields>
                        <ext:RecordField Name="Value" Type="String" />
                        <ext:RecordField Name="Description" Type="String" />
                    </Fields>
                </ext:JsonReader>
            </Reader>
        </ext:Store>
        <ext:Store ID="storeAvailableDesigns" runat="server">
            <Reader>
                <ext:JsonReader IDProperty="Id">
                    <Fields>
                        <ext:RecordField Name="Id" Type="Int" />
                        <ext:RecordField Name="CodigoUsuario" Type="String" />
                        <ext:RecordField Name="Proceso" Type="String" />
                        <ext:RecordField Name="Descripcion" Type="String" />
                    </Fields>
                </ext:JsonReader>
            </Reader>
        </ext:Store>
        <ext:Panel ID="pnlContenedor" runat="server" AutoHeight="true" AutoWidth="true">
            <TopBar>
                <ext:Toolbar runat="server" Flat="true">
                    <Items>
                        <ext:Button ID="btnAutoGenerate" runat="server" Icon="Lightning">
                            <DirectEvents>
                                <Click OnEvent="btnAutoGenerate_Click" ViewStateMode="Enabled">
                                    <EventMask ShowMask="true" />
                                    <ExtraParams>
                                        <ext:Parameter Name="jsonDatos1" Value="Ext.encode(#{gridCriteria}.getRowsValues())"
                                            Mode="Raw" />
                                    </ExtraParams>
                                </Click>
                            </DirectEvents>
                        </ext:Button>
                        <ext:ToolbarSeparator />
                        <ext:Button ID="btnAggregateControl" runat="server" EnableToggle="true" ToggleGroup="G1"
                            Pressed="false" Icon="Sum">
                            <Listeners>
                                <Click Fn="ShowHiddeAggregate" />
                            </Listeners>
                        </ext:Button>
                        <ext:Button ID="btnAddCriteria" runat="server" Icon="Add">
                            <Listeners>
                                <Click Fn="NewRow" />
                            </Listeners>
                        </ext:Button>
                        <ext:Button ID="Button1" runat="server" Text="UP">
                            <Listeners>
                                <Click Handler="move(#{gridCriteria}, true);" />
                            </Listeners>
                        </ext:Button>
                        <ext:Button ID="Button2" runat="server" Text="DOWN">
                            <Listeners>
                                <Click Handler="move(#{gridCriteria}, false);" />
                            </Listeners>
                        </ext:Button>
                        <ext:ToolbarSeparator />
                        <ext:TextField ID="txtNombreOrigen" runat="server" Width="100" ReadOnly="true" />
                        <ext:ToolbarSeparator />
                        <ext:TextField ID="txtNombreInforme" runat="server" Width="200" ReadOnly="true" />
                    </Items>
                </ext:Toolbar>
            </TopBar>
            <Items>
                <ext:GridPanel ID="gridCriteria" runat="server" AutoWidth="true" Height="200" StoreID="storeCriteria"
                    Border="false">
                    <ColumnModel ID="ColumnModel1" runat="server">
                        <Columns>
                            <ext:RowNumbererColumn />
                            <ext:Column ColumnID="Table_Name" DataIndex="Table_Name" Editable="true" Hideable="false"
                                Sortable="false" Resizable="false" Width="80">
                                <Editor>
                                    <ext:ComboBox runat="server" ID="cboTables" DisplayField="Description" ValueField="Value">
                                        <Store>
                                            <ext:Store ID="StoreTables" runat="server">
                                                <Reader>
                                                    <ext:JsonReader IDProperty="Value">
                                                        <Fields>
                                                            <ext:RecordField Name="Description" Type="String" />
                                                            <ext:RecordField Name="Value" Type="String" />
                                                        </Fields>
                                                    </ext:JsonReader>
                                                </Reader>
                                            </ext:Store>
                                        </Store>
                                    </ext:ComboBox>
                                </Editor>
                            </ext:Column>
                            <ext:Column ColumnID="Column_Name" DataIndex="Column_Name" Editable="true" Hideable="false"
                                Sortable="false" Resizable="false" Width="200">
                                <Editor>
                                    <ext:ComboBox runat="server" ID="cboColumns" DisplayField="Caption" ValueField="Name">
                                        <Store>
                                            <ext:Store ID="Store1" runat="server">
                                                <Reader>
                                                    <ext:JsonReader IDProperty="Name">
                                                        <Fields>
                                                            <ext:RecordField Name="Caption" Type="String" />
                                                            <ext:RecordField Name="Name" Type="String" />
                                                        </Fields>
                                                    </ext:JsonReader>
                                                </Reader>
                                            </ext:Store>
                                        </Store>
                                    </ext:ComboBox>
                                </Editor>
                            </ext:Column>
                            <ext:Column ColumnID="Alias" DataIndex="Alias" Editable="true" Hideable="false" Sortable="false"
                                Resizable="false" Width="100">
                                <Editor>
                                    <ext:TextField ID="TextField1" runat="server" />
                                </Editor>
                            </ext:Column>
                            <ext:BooleanColumn ColumnID="Output" DataIndex="Output" Editable="true" Hideable="false"
                                Sortable="false" Resizable="false" Width="50">
                                <Editor>
                                    <ext:Checkbox ID="Checkbox1" runat="server" />
                                </Editor>
                            </ext:BooleanColumn>
                            <ext:Column ColumnID="OrderBy" DataIndex="OrderBy" Editable="true" Hideable="false"
                                Sortable="false" Resizable="false" Width="100">
                                <Renderer Fn="OrderByRenderer" />
                                <Editor>
                                    <ext:ComboBox runat="server" ID="cboOrderBy" DisplayField="Description" ValueField="Value"
                                        StoreID="StoreOrderBy" />
                                </Editor>
                            </ext:Column>
                            <ext:Column ColumnID="GroupBy" DataIndex="GroupBy" Editable="true" Hideable="false"
                                Sortable="false" Resizable="false" Width="100" Hidden="true">
                                <Renderer Fn="GroupByRenderer" />
                                <Editor>
                                    <ext:ComboBox runat="server" ID="cboGroupBy" DisplayField="Description" ValueField="Value"
                                        StoreID="StoreGroupBy">
                                    </ext:ComboBox>
                                </Editor>
                            </ext:Column>
                            <ext:Column ColumnID="Filter" DataIndex="Filter" Editable="true" Hideable="false"
                                Sortable="false" Resizable="false" Width="100">
                                <Editor>
                                    <ext:TextField ID="TextField2" runat="server" />
                                </Editor>
                            </ext:Column>
                            <ext:Column ColumnID="Or1" DataIndex="Or1" Editable="true" Hideable="false" Sortable="false"
                                Resizable="false" Width="100">
                                <Editor>
                                    <ext:TextField ID="TextField3" runat="server" />
                                </Editor>
                            </ext:Column>
                            <ext:Column ColumnID="Or2" DataIndex="Or2" Editable="true" Hideable="false" Sortable="false"
                                Resizable="false" Width="100">
                                <Editor>
                                    <ext:TextField ID="TextField4" runat="server" />
                                </Editor>
                            </ext:Column>
                            <ext:Column ColumnID="Or3" DataIndex="Or3" Editable="true" Hideable="false" Sortable="false"
                                Resizable="false" Width="100">
                                <Editor>
                                    <ext:TextField ID="TextField5" runat="server" />
                                </Editor>
                            </ext:Column>
                        </Columns>
                    </ColumnModel>
                    <Plugins>
                        <ext:RowEditor ID="RowEditor1" runat="server" SaveText="Update">
                            <Listeners>
                                <BeforeEdit Fn="BeforeEdition" />
                                <AfterEdit Fn="UpdateEdition" />
                                <CancelEdit Fn="CancelEdition" Delay="0" />
                            </Listeners>
                        </ext:RowEditor>
                    </Plugins>
                    <SelectionModel>
                        <ext:RowSelectionModel runat="server" />
                    </SelectionModel>
                    <Listeners>
                        <RowContextMenu Handler="e.preventDefault(); #{gridCriteriaRowContextMenu}.dataRecord = this.store.getAt(rowIndex);#{gridCriteriaRowContextMenu}.showAt(e.getXY());" />
                    </Listeners>
                    <BottomBar>
                        <ext:PagingToolbar ID="pagerCriteria" runat="server" HideRefresh="true">
                            <Items>
                                <ext:ToolbarSeparator />
                                <ext:ComboBox ID="pagerCriteriaComboBox" runat="server" Editable="false" Width="100"
                                    ForceSelection="true" TriggerAction="ALL" FireSelectOnLoad="True" SelectOnFocus="true">
                                    <Listeners>
                                        <Select Handler="pagerCriteriaUpdate()" />
                                    </Listeners>
                                    <Items>
                                        <ext:ListItem Text="5" Value="5" />
                                        <ext:ListItem Text="10" Value="10" />
                                        <ext:ListItem Text="20" Value="20" />
                                        <ext:ListItem Text="ALL" Value="ALL" />
                                    </Items>
                                </ext:ComboBox>
                                <ext:ToolbarSeparator />
                            </Items>
                        </ext:PagingToolbar>
                    </BottomBar>
                </ext:GridPanel>
                <ext:Menu ID="gridCriteriaRowContextMenu" runat="server">
                    <Items>
                        <ext:MenuItem ID="btnDeleteCriteria" runat="server" Icon="Delete">
                            <Listeners>
                                <Click Handler="gridCriteria.getStore().remove(this.parentMenu.dataRecord);" />
                            </Listeners>
                        </ext:MenuItem>
                    </Items>
                </ext:Menu>
            </Items>
        </ext:Panel>
        </form>
    </body>
    </html>
    Last edited by Daniil; Aug 24, 2012 at 12:46 PM. Reason: [CLOSED]
  2. #2
    Hi,

    I can suggest to pass the currentPageOnly option to the getRowsValues method.
    grid.getRowsValues({ 
        currentPageOnly : true 
    })
    Then you will get the values in the order that you see, but from the current page only.
  3. #3
    Thanks a lot Daniil.

    Your solutions solves the issue.

    Cheers

Similar Threads

  1. [CLOSED] Pecilluar issue in the DropDown, UI Issue
    By Shanth in forum 1.x Legacy Premium Help
    Replies: 4
    Last Post: Feb 22, 2012, 12:02 PM

Posting Permissions