[CLOSED] RemoteValidation on textField doesn't work with CellEditing plugin

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1

    [CLOSED] RemoteValidation on textField doesn't work with CellEditing plugin

    Hi,

    I tried to set RemoteValidation on textField in my gridPanel with CellEditing plugin, and I see that textField is always empty because the e.Success on CheckField method return always true.

    <%@ Page Language="C#" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!X.IsAjaxRequest)
            {
                this.GridPanel1.Store.Primary.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" },
                    new object[] { "American Express Company", 52.55, 0.01, 0.02, "9/1 12:00am" },
                    new object[] { "American International Group, Inc.", 64.13, 0.31, 0.49, "9/1 12:00am" },
                    new object[] { "AT&T Inc.", 31.61, -0.48, -1.54, "9/1 12:00am" },
                    new object[] { "Boeing Co.", 75.43, 0.53, 0.71, "9/1 12:00am" },
                    new object[] { "Caterpillar Inc.", 67.27, 0.92, 1.39, "9/1 12:00am" },
                    new object[] { "Citigroup, Inc.", 49.37, 0.02, 0.04, "9/1 12:00am" },
                    new object[] { "E.I. du Pont de Nemours and Company", 40.48, 0.51, 1.28, "9/1 12:00am" },
                    new object[] { "Exxon Mobil Corp", 68.1, -0.43, -0.64, "9/1 12:00am" },
                    new object[] { "General Electric Company", 34.14, -0.08, -0.23, "9/1 12:00am" },
                    new object[] { "General Motors Corporation", 30.27, 1.09, 3.74, "9/1 12:00am" },
                    new object[] { "Hewlett-Packard Co.", 36.53, -0.03, -0.08, "9/1 12:00am" },
                    new object[] { "Honeywell Intl Inc", 38.77, 0.05, 0.13, "9/1 12:00am" },
                    new object[] { "Intel Corporation", 19.88, 0.31, 1.58, "9/1 12:00am" },
                    new object[] { "International Business Machines", 81.41, 0.44, 0.54, "9/1 12:00am" },
                    new object[] { "Johnson & Johnson", 64.72, 0.06, 0.09, "9/1 12:00am" },
                    new object[] { "JP Morgan & Chase & Co", 45.73, 0.07, 0.15, "9/1 12:00am" },
                    new object[] { "McDonald\"s Corporation", 36.76, 0.86, 2.40, "9/1 12:00am" },
                    new object[] { "Merck & Co., Inc.", 40.96, 0.41, 1.01, "9/1 12:00am" },
                    new object[] { "Microsoft Corporation", 25.84, 0.14, 0.54, "9/1 12:00am" },
                    new object[] { "Pfizer Inc", 27.96, 0.4, 1.45, "9/1 12:00am" },
                    new object[] { "The Coca-Cola Company", 45.07, 0.26, 0.58, "9/1 12:00am" },
                    new object[] { "The Home Depot, Inc.", 34.64, 0.35, 1.02, "9/1 12:00am" },
                    new object[] { "The Procter & Gamble Company", 61.91, 0.01, 0.02, "9/1 12:00am" },
                    new object[] { "United Technologies Corporation", 63.26, 0.55, 0.88, "9/1 12:00am" },
                    new object[] { "Verizon Communications", 35.57, 0.39, 1.11, "9/1 12:00am" },
                    new object[] { "Wal-Mart Stores, Inc.", 45.45, 0.73, 1.63, "9/1 12:00am" }
                };
    
                this.GridPanel1.Store.Primary.DataBind();
            }
        }
        
        protected void CheckField(object sender, RemoteValidationEventArgs e) {
            TextField field = (TextField)sender;
            
            if ((field.Text != null) || (!field.Text.Equals(""))) {
                e.Success = true;
            } else {
                e.Success = false;
                e.ErrorMessage = "empty field";
            }
            X.Msg.Alert("Message ", "e.Success " + e.Success  + "textField value " + field.Text).Show();
            
            System.Threading.Thread.Sleep(1000);
        }
    </script>
    
    <!DOCTYPE html>
    
    <html>
    <head runat="server">
        <title>Column Cell Editing - Ext.NET Examples</title>
        <link href="/resources/css/examples.css" rel="stylesheet" />    
    
        <script>
            var template = '<span style="color:{0};">{1}</span>';
    
            var change = function (value) {
                return Ext.String.format(template, (value > 0) ? "green" : "red", value);
            };
    
            var pctChange = function (value) {
                return Ext.String.format(template, (value > 0) ? "green" : "red", value + "%");
            };
        </script>
    </head>
    <body>
        <ext:ResourceManager runat="server" />
        
        <ext:GridPanel 
            ID="GridPanel1"
            runat="server" 
            ColumnLines="true"
            Title="Grid" 
            Width="600" 
            Height="350">
            <Store>
                <ext:Store runat="server">
                    <Model>
                        <ext:Model runat="server">
                            <Fields>
                                <ext:ModelField Name="company" />
                                <ext:ModelField Name="price" Type="Float" />
                                <ext:ModelField Name="change" Type="Float" />
                                <ext:ModelField Name="pctChange" Type="Float" />
                                <ext:ModelField Name="lastChange" Type="Date" DateFormat="M/d hh:mmtt" />
                            </Fields>
                        </ext:Model>
                    </Model>
                </ext:Store>
            </Store>
            <ColumnModel>
                <Columns>                
                    <ext:Column runat="server" Text="Company<br>Name" DataIndex="company" Width="200" >
                        <Editor>
                            <ext:TextField runat="server" IsRemoteValidation="true">
                                <RemoteValidation OnValidation="CheckField" />
                            </ext:TextField>
                        </Editor>
                    </ext:Column>
    
                    <ext:Column runat="server" Text="Price" DataIndex="price" Width="97" Lockable="false">
                        <Renderer Format="UsMoney" />
                        <Editor>
                            <ext:NumberField runat="server" />
                        </Editor>
                    </ext:Column>
    
                    <ext:Column runat="server" Text="Change" DataIndex="change" Width="97">
                        <Renderer Fn="change" />
                        <Editor>
                            <ext:NumberField runat="server" />
                        </Editor>
                    </ext:Column>
    
                    <ext:Column runat="server" Text="% Change" DataIndex="pctChange" Width="97">
                        <Renderer Fn="pctChange" />
                        <Editor>
                            <ext:NumberField runat="server" />
                        </Editor>
                    </ext:Column>
    
                    <ext:DateColumn runat="server" Text="Last Updated" DataIndex="lastChange" Width="97">
                        <Editor>
                            <ext:DateField runat="server" />
                        </Editor>
                    </ext:DateColumn>
                </Columns>
            </ColumnModel>
            <SelectionModel>
                <ext:CellSelectionModel runat="server" />
            </SelectionModel>
            <Plugins>
                <ext:CellEditing runat="server" ClicksToEdit="1" />
            </Plugins>
        </ext:GridPanel>          
    </body>
    </html>
    There is another way also without remoteValidation to take value of the textField?
    Thank you.
    Last edited by Daniil; Nov 29, 2013 at 2:19 PM. Reason: [CLOSED]
  2. #2
    Hello!

    Try to use the following:

    protected void CheckField(object sender, RemoteValidationEventArgs e) {
        if (!string.IsNullOrEmpty(e.Value.ToString()))
        {
            e.Success = true;
        } else {
            e.Success = false;
            e.ErrorMessage = "empty field";
        }
        X.Msg.Alert("Message ", "e.Success " + e.Success  + "textField value " + e.Value).Show();
             
        System.Threading.Thread.Sleep(1000);
    }
    However, you should understand that RemoteValidation is not designed to work with CellEditing plugin due to specifics of CellEditing plugin and there are can be some problems. RemoteValidation mainly should be used with FormPanels.
  3. #3
    Quote Originally Posted by Baidaly View Post
    However, you should understand that RemoteValidation is not designed to work with CellEditing plugin due to specifics of CellEditing plugin and there are can be some problems. RemoteValidation mainly should be used with FormPanels.

    yes of course, I need to understand which is the best way for validate the fields on the cellediting plugin before to save element on database.
    For example I need to understand if in one column there is a duplicate when cell value is changed
    Can you help me for this issue?
  4. #4
    I'd try to use validateedit event: http://docs.sencha.com/extjs/4.1.3/#...t-validateedit .

    In this handler I'd remember the value, mask the grid and return false. When the response comes to the client and if it's valid you should set the new valid value and unmask the grid, if it's not then just unmask the grid.

Similar Threads

  1. Replies: 5
    Last Post: Sep 20, 2017, 12:23 AM
  2. Replies: 2
    Last Post: Aug 23, 2013, 11:11 PM
  3. [CLOSED] Editable Plugin doesn't work with Chrome
    By anup in forum 1.x Legacy Premium Help
    Replies: 7
    Last Post: Jul 03, 2013, 4:37 AM
  4. [CLOSED] CellEditing Plugin tab key
    By softmachine2011 in forum 2.x Legacy Premium Help
    Replies: 14
    Last Post: Jun 05, 2013, 7:03 AM
  5. [CLOSED] CellEditing plugin
    By Kev in forum 2.x Legacy Premium Help
    Replies: 5
    Last Post: Sep 13, 2012, 8:06 PM

Posting Permissions