Javier Gonzalez de Aragon
Top achievements
Rank 2
Javier Gonzalez de Aragon
asked on 18 Oct 2013, 08:13 PM
Hello, I need the gridview to automatically go to the "new row" row and the first visible column (the first column is hidden) of that row after adding a row. How can I achieve this? I've tried the following but for some reason the selected column is the second, not the first one (NoMes).
Thanks
Private
Sub
gvMeses_UserAddedRow(sender
As
Object
, e
As
Telerik.WinControls.UI.GridViewRowEventArgs)
Handles
gvMeses.UserAddedRow
gvMeses.MasterView.TableAddNewRow.IsCurrent =
True
gvMeses.Columns(
"NoMes"
).IsCurrent =
True
End
Sub
Thanks
5 Answers, 1 is accepted
0
Hello Javier,
Thank you for writing.
This code seems to be working just fine on my end. Can you please make sure that column "NoMes" is indeed the first on in your grid, or just use the following code instead:
I hope this helps.
Regards,
Stefan
Telerik
Thank you for writing.
This code seems to be working just fine on my end. Can you please make sure that column "NoMes" is indeed the first on in your grid, or just use the following code instead:
Private
Sub
gvMeses_UserAddedRow(sender
As
Object
, e
As
Telerik.WinControls.UI.GridViewRowEventArgs)
Handles
gvMeses.UserAddedRow
gvMeses.MasterView.TableAddNewRow.IsCurrent =
True
gvMeses.Columns(0).IsCurrent =
True
End
Sub
I hope this helps.
Regards,
Stefan
Telerik
TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for WINFORMS.
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
0
Javier Gonzalez de Aragon
Top achievements
Rank 2
answered on 22 Oct 2013, 07:05 PM
Same result, but after playing around a little bit, here's what I found. I had setup my grid to use the Enter key to move to the next cell instead of the next row. This is the ideal behavior for my grid. Using this configuration, if the Enter key is used to navigate the grid, when a row is added, instead of selecting the new row, the first row is selected. If the Tab key is used to navigate the grid, when a row is added, the new row is indeed selected, but the second column is selected instead of the first column. If the grid is setup to use the Enter key to move to the next row, then after a row is added the new row is selected and also the first column, but this is the only scenario that it works, and as you can imagine, it is far from ideal.
0
Accepted
Hello Javier,
The NewRowEnterKeyMode was the reason for the different behavior on both ends. To achieve the desired navigation you will have to create a descendant of GridNewRowBehavior and override the Enter and Tab key behavior. Here is a sample implementation:
And here is how to put this class in action:
I hope this helps.
Regards,
Stefan
Telerik
The NewRowEnterKeyMode was the reason for the different behavior on both ends. To achieve the desired navigation you will have to create a descendant of GridNewRowBehavior and override the Enter and Tab key behavior. Here is a sample implementation:
class
MyNewRowBehavior : GridNewRowBehavior
{
protected
override
bool
ProcessEnterKey(KeyEventArgs keys)
{
bool
isAtLastColumn =
this
.Navigator.IsLastColumn(
this
.GridControl.CurrentColumn);
bool
result =
base
.ProcessEnterKey(keys);
bool
isAtFirstColumn =
this
.Navigator.IsFirstColumn(
this
.GridControl.CurrentColumn);
if
(isAtLastColumn && isAtFirstColumn)
{
this
.GridControl.MasterView.TableAddNewRow.IsCurrent =
true
;
this
.GridControl.Columns[0].IsCurrent =
true
;
}
return
result;
}
protected
override
bool
ProcessTabKey(KeyEventArgs keys)
{
bool
isAtLastColumn =
this
.Navigator.IsLastColumn(
this
.GridControl.CurrentColumn);
bool
result =
base
.ProcessTabKey(keys);
bool
isAtFirstColumn =
this
.Navigator.IsFirstColumn(
this
.GridControl.CurrentColumn);
if
(isAtLastColumn && isAtFirstColumn)
{
this
.GridControl.MasterView.TableAddNewRow.IsCurrent =
true
;
this
.GridControl.Columns[0].IsCurrent =
true
;
}
return
result;
}
}
And here is how to put this class in action:
((BaseGridBehavior)radGridView1.GridBehavior).UnregisterBehavior(
typeof
(GridViewNewRowInfo));
((BaseGridBehavior)radGridView1.GridBehavior).RegisterBehavior(
typeof
(GridViewNewRowInfo),
new
MyNewRowBehavior() );
I hope this helps.
Regards,
Stefan
Telerik
TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for WINFORMS.
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
0
Javier Gonzalez de Aragon
Top achievements
Rank 2
answered on 31 Oct 2013, 12:47 AM
Exactly what I was looking for.
Thanks.
Thanks.
0
David
Top achievements
Rank 1
answered on 11 Mar 2014, 01:24 PM
I did exactly the same but not working !!!! plz help its too important?