8 Answers, 1 is accepted
0
Hello,
Here is one possible approach to do this:
I have attached a sample project which you can tweak to suit your needs.
All the best,
Rossen Hristov
the Telerik team
Here is one possible approach to do this:
public
MainWindow()
{
InitializeComponent();
this
.clubsGrid.Loaded +=
new
RoutedEventHandler(clubsGrid_Loaded);
}
void
clubsGrid_Loaded(
object
sender, RoutedEventArgs e)
{
var grid = ((RadGridView)sender);
var firstHeaderCell = grid.ChildrenOfType<GridViewHeaderCell>()
.SingleOrDefault(headerCell => headerCell.Column == grid.Columns[
"Name"
]);
var firstFilterControl = firstHeaderCell.ChildrenOfType<FieldFilterControl>().FirstOrDefault();
if
(firstFilterControl !=
null
)
{
// You may want to change this if the first column shows a RadDateTimePicker instead of StringFilterEditor.
var textBox = firstFilterControl.ChildrenOfType<TextBox>().FirstOrDefault();
if
(textBox !=
null
)
{
textBox.Focus();
}
}
}
I have attached a sample project which you can tweak to suit your needs.
All the best,
Rossen Hristov
the Telerik team
Explore the entire Telerik portfolio by downloading Telerik DevCraft Ultimate.
0
Tim
Top achievements
Rank 1
answered on 06 Nov 2012, 01:50 PM
Hi Rossen, thanks a lot for the fast reply! I'll try it...
0
Tim
Top achievements
Rank 1
answered on 06 Nov 2012, 02:41 PM
Hello. Unfortunately with Silverlight and
var firstHeaderCell = grid.ChildrenOfType<GridViewHeaderCell>().SingleOrDefault(headerCell => headerCell.Column == grid.Columns[
"Label"
]);
firstHeaderCell is always null! My column definition looks something like:
<
telerik:GridViewDataColumn
UniqueName
=
"Label"
Header
=
"Labels:"
Width
=
"*"
>
<
telerik:GridViewDataColumn.CellTemplate
>
<
DataTemplate
>
<
telerik:RadButton
HorizontalContentAlignment
=
"Left"
>
<
TextBlock
Text
=
"{Binding Label}"
/>
</
telerik:RadButton
>
</
DataTemplate
>
</
telerik:GridViewDataColumn.CellTemplate
>
</
telerik:GridViewDataColumn
>
I tried it with different LINQ queries but all I get are exceptions... ;) Any ideas?
Thanks a lot,
Tim.
0
Hello,
1. Can you try on a different event such as DataLoaded?
2. Does grid.ChildrenOfType<GridViewHeaderCell>() return any header cells at all?
Kind regards,
Rossen Hristov
the Telerik team
1. Can you try on a different event such as DataLoaded?
2. Does grid.ChildrenOfType<GridViewHeaderCell>() return any header cells at all?
Kind regards,
Rossen Hristov
the Telerik team
Explore the entire Telerik portfolio by downloading Telerik DevCraft Ultimate.
0
Tim
Top achievements
Rank 1
answered on 06 Nov 2012, 05:05 PM
Hi Rossen,
the code is working for some events, for example FilterOperatorsLoading, but the focus will not be set anyway - perhaps because the control is not yet being displayed? It works "perfectly" with the MouseMove event - but of course nobody want to do that!!! Unfortunately I didn't found an event that suits my needs! Ideas? Thanks a lot!!!
Tim.
the code is working for some events, for example FilterOperatorsLoading, but the focus will not be set anyway - perhaps because the control is not yet being displayed? It works "perfectly" with the MouseMove event - but of course nobody want to do that!!! Unfortunately I didn't found an event that suits my needs! Ideas? Thanks a lot!!!
Tim.
0
Accepted
Hello,
Silverlight is a tricky platform regarding the focus. Here is what I invented:
You can find a working project attached.
Greetings,
Rossen Hristov
the Telerik team
Silverlight is a tricky platform regarding the focus. Here is what I invented:
public
partial
class
MainPage : UserControl
{
public
MainPage()
{
InitializeComponent();
this
.clubsGrid.LayoutUpdated += clubsGrid_LayoutUpdated;
}
void
clubsGrid_LayoutUpdated(
object
sender, EventArgs e)
{
if
(firstEditor !=
null
)
{
System.Windows.Browser.HtmlPage.Plugin.Focus();
firstEditor.ChildrenOfType<TextBox>().Single().Focus();
this
.clubsGrid.LayoutUpdated -= clubsGrid_LayoutUpdated;
}
}
private
FrameworkElement firstEditor;
private
void
clubsGrid_FieldFilterEditorCreated_1(
object
sender, Telerik.Windows.Controls.GridView.EditorCreatedEventArgs e)
{
if
(e.Column ==
this
.clubsGrid.Columns[
"Name"
])
{
this
.firstEditor = e.Editor;
}
}
You can find a working project attached.
Greetings,
Rossen Hristov
the Telerik team
Explore the entire Telerik portfolio by downloading Telerik DevCraft Ultimate.
0
Tim
Top achievements
Rank 1
answered on 07 Nov 2012, 10:29 AM
Hi Rossen,
thank you so much for your help!!! And I have to say: That did the trick!!! Well, not to 100%; I ended up with something like:
Only with this change I can be 100% sure that the focus is set!
Thanks a lot, Rossen!!!
Tim.
thank you so much for your help!!! And I have to say: That did the trick!!! Well, not to 100%; I ended up with something like:
TextBox tb =
this
._firstEditor.ChildrenOfType<TextBox>().Single();
tb.GotFocus -=
this
.TbGotFocus;
tb.GotFocus +=
this
.TbGotFocus;
tb.Focus();
}
void
TbGotFocus(
object
sender, RoutedEventArgs e)
{
this
.RadGridView1.LayoutUpdated -= RadGridView1LayoutUpdated;
}
Only with this change I can be 100% sure that the focus is set!
Thanks a lot, Rossen!!!
Tim.
0
Hello,
Just have in mind that if your column is DateTime this will be a RadDateTimePicker instead of a TextBox.
Boolean columns are also different.
Greetings,
Rossen Hristov
the Telerik team
Just have in mind that if your column is DateTime this will be a RadDateTimePicker instead of a TextBox.
Boolean columns are also different.
Greetings,
Rossen Hristov
the Telerik team
Explore the entire Telerik portfolio by downloading Telerik DevCraft Ultimate.