Cell Validating Event

2 posts, 0 answers
  1. Claude
    Claude avatar
    35 posts
    Member since:
    Jun 2020

    Posted 28 Nov 2020 Link to this post

    I have a gridview with 3 columns and I want to make sure that all cells in the row have a value in them.  If col0 is null and the user goes back and enterd data, the event does not detect the changes and just gets stuck in the col0 cell.   As you can see, I tried a couple of different ways.  Below is my code:

     

    private void dgvCatagories_CellValidating(object sender, CellValidatingEventArgs e)
            {
                try
                {
                    GridViewDataColumn column = e.Column as GridViewDataColumn;
                    // if (string.IsNullOrEmpty((string)e.Row.Cells["Col0"].Value) || ((string)e.Row.Cells["Col0"].Value).Trim() == string.Empty ||
                    //        string.IsNullOrEmpty((string)e.Row.Cells["Col1"].Value) || ((string)e.Row.Cells["Col1"].Value).Trim() == string.Empty ||
                    //        string.IsNullOrEmpty((string)e.Row.Cells["Col2"].Value) || ((string)e.Row.Cells["Col2"].Value).Trim() == string.Empty)
                    if (e.Row is GridViewDataRowInfo && column != null && column.Name == "Col0" ||
                    e.Row is GridViewDataRowInfo && column != null && column.Name == "Col1" ||
                    e.Row is GridViewDataRowInfo && column != null && column.Name == "Col2")             
                    {

                        e.Cancel = true;
                        ((GridViewDataRowInfo)e.Row).ErrorText = "Cell Can Not Be Blank";

                    }
                    else
                    {
                        ((GridViewDataRowInfo)e.Row).ErrorText = string.Empty;
                    }

                }
                catch (Exception ex)
                {
                    LogFile(ex.Message, ex.ToString(), "dgvCatagories_CellValidating", this.FindForm().Name);
                }
            }

  2. Dess | Tech Support Engineer, Sr.
    Admin
    Dess | Tech Support Engineer, Sr.  avatar
    4080 posts

    Posted 30 Nov 2020 Link to this post

    Hello, Claude,    

    RadGridView provides a convenient way to perform validation before data is committed to the underlying data source. You can validate data by handling CellValidating event which is raised by RadGridView when the current cell changes or when the cell loses input focus (when pressing Enter key). Canceling this event prevents the user from exiting the cell until a valid editor value is entered or the edit process is canceled. 

    Please have in mind that when you have an active editor in the grid, its value is not committed to the cell yet. Hence, the extracted value from the GridViewDataRowInfo is different than the one in the editor. In this case, feel free to use the CellValidatingEventArgs.Value property. Thus, you won't be stuck if the entered value is valid. A sample approach is demonstrated here: https://docs.telerik.com/devtools/winforms/controls/gridview/editors/data-validation 

    In case you are still experiencing any further difficulties, it would be greatly appreciated if you can provide a sample project demonstrating the undesired behavior that you are facing. Thus, we would be able to investigate the precise case and think about a suitable solution.

    I hope this information helps. If you need any further assistance please don't hesitate to contact me. 

    Regards,
    Dess | Tech Support Engineer, Sr.
    Progress Telerik

    Virtual Classroom, the free self-paced technical training that gets you up to speed with Telerik and Kendo UI products quickly just got a fresh new look + new and improved content including a brand new Blazor course! Check it out at https://learn.telerik.com/.

Back to Top