I have a RadGrid with 4 columns;
- Checkbox,
- Image,
- TextBox,
- BrowseColumn
What I want to do is update the first 3 columns based on the filename selected from the Dialog in column 4. I have tried ValueChanging events, validation etc. but they don't do what I need. Specifically;
1. User clicks the 'Add New Row' button
2. I want to set the focus/editor on col 4
3. User clicks the '...' dialog button in col 4 and opens the FileDialog
4. User selects a filename, FileDialog closes
5. I want to trap the event now so I can insert values into cols 1-3.
All the other events I tried do not fire until the cell loses focus or enter is pressed etc. I want to fire as soon as the Dialog.FileName is returned to the cell. Anyone know how to do this? Thanks.
- Checkbox,
- Image,
- TextBox,
- BrowseColumn
What I want to do is update the first 3 columns based on the filename selected from the Dialog in column 4. I have tried ValueChanging events, validation etc. but they don't do what I need. Specifically;
1. User clicks the 'Add New Row' button
2. I want to set the focus/editor on col 4
3. User clicks the '...' dialog button in col 4 and opens the FileDialog
4. User selects a filename, FileDialog closes
5. I want to trap the event now so I can insert values into cols 1-3.
All the other events I tried do not fire until the cell loses focus or enter is pressed etc. I want to fire as soon as the Dialog.FileName is returned to the cell. Anyone know how to do this? Thanks.
10 Answers, 1 is accepted
0
Hi Brendan,
Thank you for writing.
You can subscribe for the CellEditorInitlialized event to gain access to the grid editor. Having the editor you can subscribe for its events. Here is an example which shows how to get the filename of the file selected through the open file dialog:
I hope this will be useful. Should you have further questions, I would be glad to help.
Greetings,
Ivan Petrov
the Telerik team
Thank you for writing.
You can subscribe for the CellEditorInitlialized event to gain access to the grid editor. Having the editor you can subscribe for its events. Here is an example which shows how to get the filename of the file selected through the open file dialog:
private
void
radGridView1_CellEditorInitialized(
object
sender, GridViewCellEventArgs e)
{
GridBrowseEditor editor = e.ActiveEditor
as
GridBrowseEditor;
GridBrowseEditorElement element = editor.EditorElement
as
GridBrowseEditorElement;
element.DialogClosed += element_DialogClosed;
}
private
void
element_DialogClosed(
object
sender, DialogClosedEventArgs e)
{
if
(e.DialogResult == System.Windows.Forms.DialogResult.OK)
{
GridBrowseEditorElement element = sender
as
GridBrowseEditorElement;
string
filename = ((OpenFileDialog)element.Dialog).FileName;
}
}
I hope this will be useful. Should you have further questions, I would be glad to help.
Greetings,
Ivan Petrov
the Telerik team
WinForms Q1 2013 boasts PivotGrid, PDF Viewer, Chart enhancements and more.
Check out all of the latest highlights.
0
Brendan
Top achievements
Rank 1
answered on 12 Apr 2013, 05:45 PM
Thanks Ivan, that gets me part way there. In my code below I get the filename but I then want to set col 1 (checkbox to checked) and col 3 (textbox = filename without extension) based on this value.
In my VB code below, how can I 'get' the pending/new row to make these insertions in the dialog closed section?
In my VB code below, how can I 'get' the pending/new row to make these insertions in the dialog closed section?
Private
Sub
grdMyAppsSetup_CellEditorInitialized(sender
As
Object
, e
As
GridViewCellEventArgs)
Handles
grdMyAppsSetup.CellEditorInitialized
Dim
editor
As
GridBrowseEditor = TryCast(e.ActiveEditor, GridBrowseEditor)
If
Not
editor
Is
Nothing
Then
'are we in edit mode?
Dim
element
As
GridBrowseEditorElement = TryCast(editor.EditorElement, GridBrowseEditorElement)
'addhandler for grdEditRow event
AddHandler
element.DialogClosed,
AddressOf
grMyAppSetup_DialogClosed
End
If
End
Sub
Private
Sub
grMyAppSetup_DialogClosed(sender
As
Object
, e
As
DialogClosedEventArgs)
If
e.DialogResult = System.Windows.Forms.DialogResult.OK
Then
Dim
element
As
GridBrowseEditorElement = TryCast(sender, GridBrowseEditorElement)
Dim
sFileName
As
String
=
DirectCast
(element.Dialog, OpenFileDialog).FileName
If
sFileName.Length > 0
Then
'perform file operations here
Dim
txtFile
As
String
= Path.GetFileNameWithoutExtension(sFileName)
' HOW Can I insert txtFile into col 3, which is a textbox column
' ie: how do I access the new/pending row ?
End
If
End
If
End
Sub
0
Accepted
Hello Brendan,
Thank you for your reply.
Cells in the New row of RadGridView can be accessed as with any other row. In your case you are in edit mode so the current row is the new row. You can directly set the cells' values to the grid view current row. Here is how your code will look like:
I hope this helps. Feel free to write back with any further questions.
Kind regards,
Ivan Petrov
the Telerik team
Thank you for your reply.
Cells in the New row of RadGridView can be accessed as with any other row. In your case you are in edit mode so the current row is the new row. You can directly set the cells' values to the grid view current row. Here is how your code will look like:
Private
Sub
grMyAppSetup_DialogClosed(sender
As
Object
, e
As
DialogClosedEventArgs)
If
e.DialogResult = System.Windows.Forms.DialogResult.OK
Then
Dim
element
As
GridBrowseEditorElement = TryCast(sender, GridBrowseEditorElement)
Dim
sFileName
As
String
=
DirectCast
(element.Dialog, OpenFileDialog).FileName
If
sFileName.Length > 0
Then
'perform file operations here
Dim
txtFile
As
String
= Path.GetFileNameWithoutExtension(sFileName)
Me
.RadGridView1.CurrentRow.Cells(
"CheckBoxCol"
).Value =
True
Me
.RadGridView1.CurrentRow.Cells(
"TextBoxCol"
).Value = txtFile
End
If
End
If
End
Sub
I hope this helps. Feel free to write back with any further questions.
Kind regards,
Ivan Petrov
the Telerik team
WinForms Q1 2013 boasts PivotGrid, PDF Viewer, Chart enhancements and more.
Check out all of the latest highlights.
0
Brendan
Top achievements
Rank 1
answered on 17 Apr 2013, 03:18 PM
Thank Ivan, it seems too simple now when I see it.
I also added some code at the top of the CellEditorInitialized event to move focus to the cell with the GridBrowser column. Here is the code in case other readers may be curious.
Now when I click the 'Add New Row' bar, the GridBrowser Column always gains focus, and the user is prompted to find a file.
I also added some code at the top of the CellEditorInitialized event to move focus to the cell with the GridBrowser column. Here is the code in case other readers may be curious.
'set focus to filename column Me.grdMyRadGrid.CurrentRow.Cells("colFile").BeginEdit()
Now when I click the 'Add New Row' bar, the GridBrowser Column always gains focus, and the user is prompted to find a file.
0
Hello Brendan,
Thank you for writing back.
Thank you for sharing your solution with the community.
I am glad we have been able to find solutions to your problems. Do not hesitate to write back for further assistance.
Greetings,
Ivan Petrov
the Telerik team
Thank you for writing back.
Thank you for sharing your solution with the community.
I am glad we have been able to find solutions to your problems. Do not hesitate to write back for further assistance.
Greetings,
Ivan Petrov
the Telerik team
WinForms Q1 2013 boasts PivotGrid, PDF Viewer, Chart enhancements and more.
Check out all of the latest highlights.
0
Brendan
Top achievements
Rank 1
answered on 22 Jul 2013, 09:39 PM
Hi Ivan, I have another question relating to the GridBrowseEditor and thought it best to continue in this thread.
Is it possible to set a filter selection on the dialog (ie: like fileDialogBox.Filter ?). I looked in the BaseInputEditor, GridBrowseEditor, GridBrowseEditorElement,and in the Object Browser under RadBrowserEditorElement at CreateOpenFileDialog but wasn't sure how to implement it or if it was the answer.
Can a file filter and initial folder path be set? (eg: fileDialogBox.Filter = "Excel Documents XML (*.xml)|*.xml" )
Thanks, Brendan
Is it possible to set a filter selection on the dialog (ie: like fileDialogBox.Filter ?). I looked in the BaseInputEditor, GridBrowseEditor, GridBrowseEditorElement,and in the Object Browser under RadBrowserEditorElement at CreateOpenFileDialog but wasn't sure how to implement it or if it was the answer.
Can a file filter and initial folder path be set? (eg: fileDialogBox.Filter = "Excel Documents XML (*.xml)|*.xml" )
Thanks, Brendan
0
Hello Brendan,
Thank you for your reply.
You can access the dialog of RadBrowseEditor through the Dialog property. This property holds the dialog that will be shown based on the DialogType property. Here is how you can set a filter to a OpenFileDialog:
The dialog property is of the base type of the available dialogs so you will have to cast it to the proper type.
I hope this will be of use. Should you have further questions, feel free to write back.
Regards,
Ivan Petrov
Telerik
Thank you for your reply.
You can access the dialog of RadBrowseEditor through the Dialog property. This property holds the dialog that will be shown based on the DialogType property. Here is how you can set a filter to a OpenFileDialog:
RadBrowseEditor editor =
new
RadBrowseEditor();
editor.DialogType = BrowseEditorDialogType.OpenFileDialog;
OpenFileDialog openFileDialog = editor.Dialog
as
OpenFileDialog;
openFileDialog.Filter =
"Excel Documents XML (*.xml)|*.xml"
;
The dialog property is of the base type of the available dialogs so you will have to cast it to the proper type.
I hope this will be of use. Should you have further questions, feel free to write back.
Regards,
Ivan Petrov
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
Brendan
Top achievements
Rank 1
answered on 25 Jul 2013, 05:56 PM
Thanks Ivan, however I am not sure how to connect the RadBrowseEditor and the GridBrowseEditorElement. In the code below I cannot create 'element' because EditorElement is not a member of the RadBrowseEditor.
Dim
editor
As
New
RadBrowseEditor()
editor.DialogType = BrowseEditorDialogType.OpenFileDialog
Dim
openFileDialog
As
OpenFileDialog = TryCast(editor.Dialog, OpenFileDialog)
openFileDialog.Filter =
"Excel Documents XML (*.xml)|*.xml"
If
Not
editor
Is
Nothing
Then
'are we in edit mode?
Dim
element
As
GridBrowseEditorElement = TryCast(editor.EditorElement, GridBrowseEditorElement)
'addhandler for grdEditRow event
AddHandler
element.DialogClosed,
AddressOf
grdMyReportsSetup_DialogClosed
End
If
0
Hello Brendan,
Thank you for writing back.
The editors in all controls are a logical connection between the editor and the control. They implement an interface which helps them communicate with the controls they are used in. Each editor has an editor element which is what is added to the controls and what the users see and interact with. Here is how to access the browse editor element from the CellEditorInitialized:
I hope this will be useful. Should you have further questions, I would be glad to assist.
Regards,
Ivan Petrov
Telerik
Thank you for writing back.
The editors in all controls are a logical connection between the editor and the control. They implement an interface which helps them communicate with the controls they are used in. Each editor has an editor element which is what is added to the controls and what the users see and interact with. Here is how to access the browse editor element from the CellEditorInitialized:
Private Sub RadGridView1_CellEditorInitialized(sender As Object, e As GridViewCellEventArgs) Handles RadGridView1.CellEditorInitialized
Dim editor As GridBrowseEditor = TryCast(e.ActiveEditor, GridBrowseEditor)
If editor IsNot Nothing Then
Dim element As RadBrowseEditorElement = DirectCast(editor.EditorElement, RadBrowseEditorElement)
Dim openDialog As OpenFileDialog = DirectCast(element.Dialog, OpenFileDialog)
openDialog.Filter =
"Excel Documents XML (*.xml)|*.xml"
End If
End Sub
I hope this will be useful. Should you have further questions, I would be glad to assist.
Regards,
Ivan Petrov
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
Brendan
Top achievements
Rank 1
answered on 14 Aug 2013, 04:03 PM
Thanks, that works well.