[CLOSED] RowEditor : How to cancel edition when user clicks at other row

  1. #1

    [CLOSED] RowEditor : How to cancel edition when user clicks at other row

    Hi folks,

    How can I raise cancel event at RowEditor when user clicks at other row?

    Click image for larger version. 

Name:	Sin título.jpg 
Views:	115 
Size:	17.9 KB 
ID:	4332

    Steps:
    1. Press Add button. Fill tabla and Columna cells. Press Update
    2. Press Add button again. Click at row 1. See this invalid second row...

    Thanks a lot!

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="extnet_proves.Default" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            SetStoreTables();
        }
    
        private void SetStoreTables()
        {
            System.Collections.Generic.List<object> data = new System.Collections.Generic.List<object>();
            data.Add(new { Description = "TABLE_1" });
            data.Add(new { Description = "TABLE_2" });
    
            Store s1 = this.cboTables.GetStore();
            s1.DataSource = data;
            s1.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>
        <ext:XScript ID="XScript1" runat="server">
            <script type="text/javascript">
                var GroupByRenderer = function (value) {
                    var r = StoreGroupBy.getById(value);
    
                    if (Ext.isEmpty(r)) {
                        return "";
                    }
    
                    return r.data.Description;
                };
    
                var OrderTypeRenderer = function (value) {
                    var r = StoreOrderType.getById(value);
    
                    if (Ext.isEmpty(r)) {
                        return "";
                    }
    
                    return r.data.Description;
                };
    
                var NewRow = function () {
                    btnNewRow.disabled = true;
                    PanelCriteria.getRowEditor().stopEditing();
    
                    var s = StorePanelCriteria.save();
    
                    var rowIndex = PanelCriteria.addRecord({
                        Table: "",
                        Column: ""
                    });
    
                    PanelCriteria.getView().refresh();
                    PanelCriteria.getSelectionModel().selectRow(rowIndex);
                    PanelCriteria.getRowEditor().startEditing(rowIndex);
                }
    
                var CancelEdition = function () {
                    if (this.record.newRecord) {
                        this.grid.getStore().remove(this.record);
                        this.grid.getView().refresh();
                    }
                    btnNewRow.disabled = false;
                }
    
                var BeforeEdition = function () {
                    btnNewRow.disabled = true;
                }
    
                var UpdateEdition = function () {
                    if (this.record.newRecord) {
                        this.record.newRecord = false;
                        this.record.dirty = false;
                    }
                    btnNewRow.disabled = false;
                }            
            </script>
        </ext:XScript>
    </head>
    <body>
        <form id="form1" runat="server">
        <ext:ResourceManager ID="ResourceManager1" runat="server" />
        <ext:Store ID="StorePanelCriteria" runat="server" RefreshAfterSaving="None">
            <Reader>
                <ext:JsonReader IDProperty="Id">
                    <Fields>
                        <ext:RecordField Name="Id" Type="String" />
                        <ext:RecordField Name="Table" Type="String" />
                        <ext:RecordField Name="Column" Type="String" />
                    </Fields>
                </ext:JsonReader>
            </Reader>
        </ext:Store>
        <ext:Panel ID="pnlContenedor" runat="server">
            <TopBar>
                <ext:Toolbar ID="Toolbar1" runat="server" Flat="true">
                    <Items>
                        <ext:Button ID="btnNewRow" runat="server" Icon="Add" ToolTip="ADD">
                            <Listeners>
                                <Click Fn="NewRow" />
                            </Listeners>
                        </ext:Button>
                    </Items>
                </ext:Toolbar>
            </TopBar>
            <Items>
                <ext:GridPanel ID="PanelCriteria" runat="server" AutoWidth="true" Height="300" StoreID="StorePanelCriteria">
                    <ColumnModel ID="ColumnModel1" runat="server">
                        <Columns>
                            <ext:RowNumbererColumn />
                            <ext:Column ColumnID="Table" DataIndex="Table" Editable="true" Hideable="false" Sortable="false"
                                Resizable="true" Width="100" Header="Tabla">
                                <Editor>
                                    <ext:ComboBox runat="server" ID="cboTables" DisplayField="Description" ValueField="Description"
                                        AllowBlank="false">
                                        <Store>
                                            <ext:Store ID="Store2" runat="server">
                                                <Reader>
                                                    <ext:JsonReader IDProperty="Description">
                                                        <Fields>
                                                            <ext:RecordField Name="Description" Type="String" />
                                                            <ext:RecordField Name="Description" Type="String" />
                                                        </Fields>
                                                    </ext:JsonReader>
                                                </Reader>
                                            </ext:Store>
                                        </Store>
                                    </ext:ComboBox>
                                </Editor>
                            </ext:Column>
                            <ext:Column ColumnID="Column" DataIndex="Column" Editable="true" Hideable="false"
                                Sortable="false" Resizable="true" Width="100" Header="Columna">
                                <Editor>
                                    <ext:TextField ID="TextField1" runat="server" AllowBlank="false" />
                                </Editor>
                            </ext:Column>
                        </Columns>
                    </ColumnModel>
                    <Plugins>
                        <ext:RowEditor ID="RowEditor1" runat="server" SaveText="Update">
                            <Listeners>
                                <BeforeEdit Fn="BeforeEdition" />
                                <AfterEdit Fn="UpdateEdition" />
                                <CancelEdit Fn="CancelEdition" />
                            </Listeners>
                        </ext:RowEditor>
                    </Plugins>
                    <SelectionModel>
                        <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" />
                    </SelectionModel>
                </ext:GridPanel>
            </Items>
        </ext:Panel>
        </form>
    </body>
    </html>
    Last edited by Daniil; Jun 06, 2012 at 2:45 PM. Reason: [CLOSED]
  2. #2
    Hi,

    I would suggest to do not allow changing a row if the current one is invalid.
    http://forums.ext.net/showthread.php...ll=1#post69420
  3. #3
    Thanks a lot Daniil. Issue solved. You can close this.

    Cheers!

Similar Threads

  1. Edit store record when user clicks on the row
    By Mr.Techno in forum 1.x Help
    Replies: 6
    Last Post: Aug 29, 2011, 1:40 PM
  2. roweditor cancel() code begin
    By jhohan25 in forum 1.x Help
    Replies: 0
    Last Post: Aug 08, 2011, 10:13 PM
  3. Replies: 3
    Last Post: Apr 08, 2010, 5:28 PM
  4. [CLOSED] How to make an image button pressed when the user clicks it?
    By flormariafr in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: Apr 01, 2010, 2:26 AM
  5. Replies: 1
    Last Post: May 27, 2009, 4:55 AM

Posting Permissions