Deleting last row create new one

9 posts, 2 answers
  1. Dominik
    Dominik avatar
    82 posts
    Member since:
    Dec 2012

    Posted 19 Dec 2012 Link to this post

    Hello,

    AllowDeleteRow = True;
    AddNewRowPosition  = Bootom;

    If you remove last row, grid will automatically create a new row (which is later validated) because the current selection will jump to the cell where there is a button (+Click here to add a new row) which adds a new row.

    During the validation I'm not able to check whether the user actually wants to add a new row whether it was due to the removal.

    The same situation occurs when I set AddNewRowPosition = Top and user will try to delete all rows.
    After deleting last row, new one will be added.


    How to avoid that? 

  2. Plamen
    Admin
    Plamen avatar
    132 posts

    Posted 21 Dec 2012 Link to this post

    Hi Dominik,

    Thank you for writing.

    I have tested the described scenarion and if you remove all grid rows a new row is not automatically added on my end. Just the grids' new row becomes current. Same is the behavior if the new row is positioned at the bottom and I delete the last data row. 

    If you continue experiencing the undesired behavior, please get back to me with a sample application where it can be reproduced. Once I am able to do that I will be able to assist you with this case.

    In the meantime you can check out the following documentation article, which describes useful events and properties allowing you to achieve different scenarios related to the new row: http://www.telerik.com/help/winforms/gridview-rows-new-row.html.

    I hope this helps. Do not hesitate to contact us, If you have any additional questions.

    All the best,
    Plamen
    the Telerik team
    Q3’12 of RadControls for WinForms is available for download (see what's new). Get it today.
  3. Dominik
    Dominik avatar
    82 posts
    Member since:
    Dec 2012

    Posted 06 Jan 2013 Link to this post

    Thank you for your answer.
    I understand how events work... but in my scenario i want to avoid situation when the grids's new row become current after deleting all rows.
    Instead of entering edit mode I only want "Click here to add new row" row visible again.
  4. Answer
    Plamen
    Admin
    Plamen avatar
    132 posts

    Posted 07 Jan 2013 Link to this post

    Hello Dominik,

    Thank you for writing.

    I managed to reproduce your scenario by following the supplied information. After deleting all rows, the grid's new row becomes current, thus the text is not displayed. If you want to avoid this situation, you could use the following code snippet to clear the current row:
    radGridView1.UserDeletedRow += new GridViewRowEventHandler(radGridView1_UserDeletedRow);
     
    void radGridView1_UserDeletedRow(object sender, GridViewRowEventArgs e)
    {
        if (radGridView1.Rows.Count == 0)
        {
            radGridView1.CurrentRow = null;
        }
    }

    Attached you can find a sample project, which demonstrates the implemented scenario.

    I hope you find my information useful.

    Regards,
    Plamen
    the Telerik team
    Q3'12 SP1 of RadControls for WinForms is out now. See what's new.
  5. Dominik
    Dominik avatar
    82 posts
    Member since:
    Dec 2012

    Posted 08 Jan 2013 Link to this post

    Thank you Plamen. This work great!
    I have one more question.
    Now needs to accomplish the same thing if the user adds a new row, but this event is not working:.

    void radGridView1_UserAddedRow(object sender, GridViewRowEventArgs e)
    {
        radGridView1.CurrentRow = null;
    }

  6. Plamen
    Admin
    Plamen avatar
    132 posts

    Posted 11 Jan 2013 Link to this post

    Hi Dominik,

    Thank you for writing.

    Use the following code snippet in order to achieve the desired scenario:
    radGridView1.UserAddedRow += new GridViewRowEventHandler(radGridView1_UserAddedRow);
    radGridView1.MasterTemplate.SelectLastAddedRow = true;
     
    void radGridView1_UserAddedRow(object sender, GridViewRowEventArgs e)
    {
        radGridView1.CurrentRow = null;
    }

    I hope this helps. If you have any additional questions, I will be glad to assist you.

    Greetings,
    Plamen
    the Telerik team
    Q3'12 SP1 of RadControls for WinForms is out now. See what's new.
  7. Dominik
    Dominik avatar
    82 posts
    Member since:
    Dec 2012

    Posted 11 Jan 2013 Link to this post

    Hi Plamen,

    Thank you for your answer, unfortunately, still does not work for me.

    Please check attached files:
    1 - tab and 2 - click are working good.
    3 - click on group and 4 - click on other control are not working.

    So basically when validation ends within MasterTemplate it working good.... but not when you trying to leave grid at the end on entering data. This should work regardless of how the user finished adding a new row.



  8. Answer
    Plamen
    Admin
    Plamen avatar
    132 posts

    Posted 16 Jan 2013 Link to this post

    Hi Dominik,

    Thank you for writing.

    I managed to reproduce your scenario by following the supplied screen shots. In order to avoid a situation when the RadGridView's new row become current after adding a new row, you can use a Timer and set the CurrentRow property of the RadGridView to null:
    void radGridView1_UserAddedRow(object sender, GridViewRowEventArgs e)
    {
        Timer timer = new Timer();
        timer.Tick += new EventHandler(timer_Tick);
        timer.Interval = 100;
        timer.Start();
    }
     
    void timer_Tick(object sender, EventArgs e)
    {
        Timer timer = (Timer)sender;
        timer.Stop();
        timer.Dispose();
     
        radGridView1.CurrentRow = null;
    }

    Find attached a modified version of my previous sample project, which I hope will help you.

    Should you have any future questions, do not hesitate to contact us.

    Kind regards,
    Plamen
    the Telerik team
    Q3'12 SP1 of RadControls for WinForms is out now. See what's new.
  9. Dominik
    Dominik avatar
    82 posts
    Member since:
    Dec 2012

    Posted 23 Jan 2013 Link to this post

    Works like a charm!
    Thanks for your help.

Back to Top