[CLOSED] Grid editing plugin is in Edit mode when clicking on readonly cell

  1. #1

    [CLOSED] Grid editing plugin is in Edit mode when clicking on readonly cell

    In example below, select a cell by clicking on the String column. Then click the Check Editing button. It will say the cellediting plugin is editing even though it is not. At this point, there's no way to get the plugin back to not editing mode. We have logic in our application that disables the Delete button if the plugin is currently editing. This bug prevents user from deleting selected rows.


    <!DOCTYPE html>
    <script runat="server">
        
    #Region " Load "
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            If Not IsPostBack Then
              
                LoadGrid()
            End If
        End Sub
       
        Protected Sub LoadGrid()
            Dim list As New System.Collections.Generic.List(Of DataClass)
            
            For i As Integer = 0 To 5
                list.Add(New DataClass With {.Key = Guid.NewGuid(), .StringColumn = "Row " & i.ToString(), .DateColumn = DateTime.Now(), .NumericColumn = i, .ListColumn = i})
            Next
                         
            Me.storePageLoad.DataSource = list
            Me.storePageLoad.DataBind()
        End Sub
        
    #End Region
     
    
    
    #Region " DataClass "
        
        Public Class DataClass
           
            Public Property Key() As Guid
            Public Property StringColumn As String
            Public Property DateColumn As DateTime
            Public Property NumericColumn As Integer
            Public Property ListColumn As Integer
               
        End Class
        
    #End Region
        
       
        
    </script>
    <html>
    <head id="Head1" runat="server">
        <title>The Test Page </title>
        <script type="text/javascript">
            function onCheckPlugin() {
                window.alert(gridPageLoad.editingPlugin.editing);
    
    
            }
        </script>
    </head>
    <body>
        <form runat="server">
            <ext:ResourceManager ID="ResourceManager1" runat="server" ScriptMode="Debug" Namespace="" />
           
            <ext:GridPanel runat="server" ID="gridPageLoad" Height="250" Width="600">
                <TopBar>
                    <ext:Toolbar ID="Toolbar1" runat="server">
                        <Items>
                            <ext:Button ID="Button1" runat="server" Text="Check Editing Flag" Handler="onCheckPlugin">
                            </ext:Button>
    
    
                        </Items>
                    </ext:Toolbar>
                </TopBar>
                <Store>
                    <ext:Store runat="server" ID="storePageLoad">
                        <Model>
                            <ext:Model ID="Model2" runat="server" IDProperty="Key">
                                <Fields>
                                    <ext:ModelField Name="Key">
                                    </ext:ModelField>
                                    <ext:ModelField Name="StringColumn">
                                    </ext:ModelField>
                                    <ext:ModelField Name="DateColumn" Type="Date">
                                    </ext:ModelField>
                                    <ext:ModelField Name="NumericColumn" Type="Float">
                                    </ext:ModelField>
                                </Fields>
                            </ext:Model>
                        </Model>
                    </ext:Store>
                </Store>
                <ColumnModel>
                    <Columns>
                        <ext:RowNumbererColumn ID="RowNumbererColumn1" runat="server">
                        </ext:RowNumbererColumn>
                        <ext:Column ID="Column1" runat="server" Text="String" DataIndex="StringColumn" Flex="1">
                        </ext:Column>
                        <ext:DateColumn ID="DateColumn1" runat="server" Text="Date" DataIndex="DateColumn">
                            <Editor>
                                <ext:DateField ID="DateField1" runat="server">
                                </ext:DateField>
                            </Editor>
                        </ext:DateColumn>
                        <ext:NumberColumn ID="NumberColumn1" runat="server" Text="Number" DataIndex="NumericColumn">
                            <Editor>
                                <ext:NumberField ID="NumberField1" runat="server">
                                </ext:NumberField>
                            </Editor>
                        </ext:NumberColumn>
    
    
                    </Columns>
                </ColumnModel>
                <Plugins>
                    <ext:CellEditing ClicksToEdit="1">
                    </ext:CellEditing>
                </Plugins>
            </ext:GridPanel>
        </form>
    </body>
    </html>
    Last edited by Daniil; Oct 18, 2013 at 4:47 AM. Reason: [CLOSED]
  2. #2
    Hello!

    It seems that in your case it's better to use Listeners than Properties. Try the following one:

    <%@ Page Language="VB" %>
     
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
      
    <!DOCTYPE html>
    <script runat="server">
         
    #Region " Load "
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            If Not IsPostBack Then
               
                LoadGrid()
            End If
        End Sub
        
        Protected Sub LoadGrid()
            Dim list As New System.Collections.Generic.List(Of DataClass)
             
            For i As Integer = 0 To 5
                list.Add(New DataClass With {.Key = Guid.NewGuid(), .StringColumn = "Row " & i.ToString(), .DateColumn = DateTime.Now(), .NumericColumn = i, .ListColumn = i})
            Next
                          
            Me.storePageLoad.DataSource = list
            Me.storePageLoad.DataBind()
        End Sub
         
    #End Region
      
     
     
    #Region " DataClass "
         
        Public Class DataClass
            
            Public Property Key() As Guid
            Public Property StringColumn As String
            Public Property DateColumn As DateTime
            Public Property NumericColumn As Integer
            Public Property ListColumn As Integer
                
        End Class
         
    #End Region
         
        
         
    </script>
    <html>
    <head id="Head1" runat="server">
        <title>The Test Page </title>
        <script type="text/javascript">
            function onCheckPlugin() {
                window.alert(gridPageLoad.editingPlugin.editing);
    
    
            }
        </script>
    </head>
    <body>
        <form runat="server">
            <ext:ResourceManager ID="ResourceManager1" runat="server" ScriptMode="Debug" Namespace="" />
            
            <ext:Button runat="server" ID="DeleteButton" Text="Delete"></ext:Button>
            
            <ext:GridPanel runat="server" ID="gridPageLoad" Height="250" Width="600">
                <TopBar>
                    <ext:Toolbar ID="Toolbar1" runat="server">
                        <Items>
                            <ext:Button ID="Button1" runat="server" Text="Check Editing Flag" Handler="onCheckPlugin">
                            </ext:Button>
     
     
                        </Items>
                    </ext:Toolbar>
                </TopBar>
                <Store>
                    <ext:Store runat="server" ID="storePageLoad">
                        <Model>
                            <ext:Model ID="Model2" runat="server" IDProperty="Key">
                                <Fields>
                                    <ext:ModelField Name="Key">
                                    </ext:ModelField>
                                    <ext:ModelField Name="StringColumn">
                                    </ext:ModelField>
                                    <ext:ModelField Name="DateColumn" Type="Date">
                                    </ext:ModelField>
                                    <ext:ModelField Name="NumericColumn" Type="Float">
                                    </ext:ModelField>
                                </Fields>
                            </ext:Model>
                        </Model>
                    </ext:Store>
                </Store>
                <ColumnModel>
                    <Columns>
                        <ext:RowNumbererColumn ID="RowNumbererColumn1" runat="server">
                        </ext:RowNumbererColumn>
                        <ext:Column ID="Column1" runat="server" Text="String" DataIndex="StringColumn" Flex="1">
                        </ext:Column>
                        <ext:DateColumn ID="DateColumn1" runat="server" Text="Date" DataIndex="DateColumn">
                            <Editor>
                                <ext:DateField ID="DateField1" runat="server">
                                </ext:DateField>
                            </Editor>
                        </ext:DateColumn>
                        <ext:NumberColumn ID="NumberColumn1" runat="server" Text="Number" DataIndex="NumericColumn">
                            <Editor>
                                <ext:NumberField ID="NumberField1" runat="server">
                                </ext:NumberField>
                            </Editor>
                        </ext:NumberColumn>
     
     
                    </Columns>
                </ColumnModel>
                <Plugins>
                    <ext:CellEditing ClicksToEdit="1">
                        <Listeners>
                            <BeforeEdit Handler="#{DeleteButton}.disable(); return true;"></BeforeEdit>
                            <Edit Handler="#{DeleteButton}.enable();"></Edit>
                        </Listeners>
                    </ext:CellEditing>
                </Plugins>
            </ext:GridPanel>
        </form>
    </body>
    </html>
  3. #3
    Delete button is just an example. Our application involves more complex logic that can not be done this way.
  4. #4
    OK, try the following:

    function onCheckPlugin() {
        var isEditing = gridPageLoad.editingPlugin.getActiveEditor() != null && gridPageLoad.editingPlugin.getActiveEditor().editing;
        window.alert(isEditing);
    }

Similar Threads

  1. [CLOSED] Cell editing in the data grid
    By RRD in forum 2.x Legacy Premium Help
    Replies: 3
    Last Post: Jun 19, 2013, 7:01 PM
  2. [CLOSED] performing editing the grid inside row expander plugin
    By pawangyanwali in forum 2.x Legacy Premium Help
    Replies: 8
    Last Post: May 13, 2013, 5:40 AM
  3. Grid Panel Cell Editing focus in CheckColumn
    By shaileshsakaria in forum 2.x Help
    Replies: 3
    Last Post: Apr 27, 2013, 11:58 AM
  4. Grid Panel Cell Editing focus
    By shaileshsakaria in forum 2.x Help
    Replies: 0
    Last Post: Jan 13, 2013, 9:14 AM
  5. [CLOSED] Detect Grid Edit Mode
    By rthiney in forum 1.x Legacy Premium Help
    Replies: 4
    Last Post: Aug 25, 2011, 7:18 PM

Posting Permissions