Good Day,
I would like to know if this is currently possible with the RadGrid, Please see image link. I would like a statusbar type control but in the radgrid so when a user adds a filer he will be able to quickly cancel all the filters or just disable/enable the filter quickly.
If it's not possible can you please think of adding it to the next release as this will be a nice user experience addition.
FilterStatus_Image
I would like to know if this is currently possible with the RadGrid, Please see image link. I would like a statusbar type control but in the radgrid so when a user adds a filer he will be able to quickly cancel all the filters or just disable/enable the filter quickly.
If it's not possible can you please think of adding it to the next release as this will be a nice user experience addition.
FilterStatus_Image
11 Answers, 1 is accepted
0
Accepted
Richard Slade
Top achievements
Rank 2
answered on 17 Dec 2010, 03:00 PM
Hi Dean,
You can do this by adding a RadHostItem to the RadGridView's TableElement, and a RadStatusStrip to the RadHostItem. Have a go with the following code. It's just a RadGridView on a form.
hope that helps
Richard
You can do this by adding a RadHostItem to the RadGridView's TableElement, and a RadStatusStrip to the RadHostItem. Have a go with the following code. It's just a RadGridView on a form.
Imports Telerik.WinControls.UI Imports Telerik.WinControls Public Class Form1 Private m_FilterCancelButton As RadButtonElement Private m_FilterLabel As RadLabelElement Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.RadGridView1.EnableFiltering = True Me.RadGridView1.ShowFilteringRow = True Me.RadGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.None Me.RadGridView1.Columns.Add(New GridViewTextBoxColumn("Name")) Me.RadGridView1.Columns.Add(New GridViewDecimalColumn("Value")) Dim rowInfo As GridViewRowInfo = Me.RadGridView1.Rows.AddNew() rowInfo.Cells(0).Value = "A1" rowInfo.Cells(1).Value = 3 rowInfo = Me.RadGridView1.Rows.AddNew() rowInfo.Cells(0).Value = "A2" rowInfo.Cells(1).Value = 4 rowInfo = Me.RadGridView1.Rows.AddNew() rowInfo.Cells(0).Value = "A3" rowInfo.Cells(1).Value = 5 rowInfo = Me.RadGridView1.Rows.AddNew() rowInfo.Cells(0).Value = "A4" rowInfo.Cells(1).Value = 6 rowInfo = Me.RadGridView1.Rows.AddNew() rowInfo.Cells(0).Value = "A2" rowInfo.Cells(1).Value = 4 rowInfo = Me.RadGridView1.Rows.AddNew() rowInfo.Cells(0).Value = "A3" rowInfo.Cells(1).Value = 5 rowInfo = Me.RadGridView1.Rows.AddNew() rowInfo.Cells(0).Value = "A4" rowInfo.Cells(1).Value = 6 Dim statusBar As New RadStatusStrip() statusBar.Dock = DockStyle.Bottom statusBar.StatusBarElement.GripStyle = ToolStripGripStyle.Hidden m_FilterCancelButton = New RadButtonElement() m_FilterCancelButton.Text = "-" AddHandler m_FilterCancelButton.Click, AddressOf FilterCancelButton_Click m_FilterLabel = New RadLabelElement() m_FilterLabel.Text = " Currently Unfiltered" statusBar.Items.Add(m_FilterCancelButton) statusBar.Items.Add(m_FilterLabel) Dim hostItem As New RadHostItem(statusBar) Me.RadGridView1.TableElement.Children.Add(hostItem) End Sub Private Sub FilterCancelButton_Click(ByVal sender As Object, ByVal e As EventArgs) Me.RadGridView1.FilterDescriptors.Clear() End Sub Private Sub RadGridView1_FilterExpressionChanged(ByVal sender As System.Object, ByVal e As Telerik.WinControls.UI.FilterExpressionChangedEventArgs) Handles RadGridView1.FilterExpressionChanged If e.FilterExpression.Length > 0 Then m_FilterLabel.Text = e.FilterExpression Else If m_FilterLabel IsNot Nothing Then m_FilterLabel.Text = "Currently unfiltered" End If End If End Sub End Classhope that helps
Richard
0
Dean
Top achievements
Rank 2
answered on 18 Dec 2010, 10:53 AM
Thank you so much for a solution, it works perfectly.
0
erwin
Top achievements
Rank 1
Veteran
Iron
answered on 13 Apr 2011, 04:00 PM
I'm trying this with 2011Q1 but the status strip first covers the grid, and gets invisible after a refesh. of the grid control.
I would like to have the status strip dock to the bottom, and the grid's table just in the space above it.
Regards
Erwin
I would like to have the status strip dock to the bottom, and the grid's table just in the space above it.
Regards
Erwin
0
Richard Slade
Top achievements
Rank 2
answered on 14 Apr 2011, 09:12 AM
Hi Erwin,
Hope you're well. I can see what you mean by it cuts it off at the bottom, though it just seems to be acting like a status bar at the bottom of the form, which doesn't seem to be an issue as far as I can see at the moment. I also cannot get the bar to disappear when anything is refreshed in the latest version of the controls. All seems to work fine.
Can you post a small sample to replicate the problem? If you like, I can add a quick video to show it working here.
Thanks
Richard
Hope you're well. I can see what you mean by it cuts it off at the bottom, though it just seems to be acting like a status bar at the bottom of the form, which doesn't seem to be an issue as far as I can see at the moment. I also cannot get the bar to disappear when anything is refreshed in the latest version of the controls. All seems to work fine.
Can you post a small sample to replicate the problem? If you like, I can add a quick video to show it working here.
Thanks
Richard
0
erwin
Top achievements
Rank 1
Veteran
Iron
answered on 14 Apr 2011, 04:58 PM
Hi Richard,
thanks for the message. It's not a big issue, I just saw this message and tried it out. In order to place the status bar below the grid and covering it, I tried various stuff and only then did I get the issue of the status bar disappearing.
In my app, until now I use a custom control that contains the grid and has some space below for status messages, buttons etc. This works well, but is a little bit awkward since the custom control has to make the grid public for maximum flexibility. And you then have to access its properties through something like
myControl.Grid.TableElement.....
directly deriving from the grid and add a statusbar seemed more elegant than using a container with the grid and the status bar in it.
Regards
Erwin
thanks for the message. It's not a big issue, I just saw this message and tried it out. In order to place the status bar below the grid and covering it, I tried various stuff and only then did I get the issue of the status bar disappearing.
In my app, until now I use a custom control that contains the grid and has some space below for status messages, buttons etc. This works well, but is a little bit awkward since the custom control has to make the grid public for maximum flexibility. And you then have to access its properties through something like
myControl.Grid.TableElement.....
directly deriving from the grid and add a statusbar seemed more elegant than using a container with the grid and the status bar in it.
Regards
Erwin
0
Richard Slade
Top achievements
Rank 2
answered on 15 Apr 2011, 09:05 AM
Hi Erwin,
Ok, well if I can help in any way just let me know. I guess one could also just use a status bar on the form itself as in a regular way. If you have time at some point to post your own solution too, I'd be interested to see it.
Let me know if I can help though
thanks
Richard
Ok, well if I can help in any way just let me know. I guess one could also just use a status bar on the form itself as in a regular way. If you have time at some point to post your own solution too, I'd be interested to see it.
Let me know if I can help though
thanks
Richard
0
erwin
Top achievements
Rank 1
Veteran
Iron
answered on 15 Apr 2011, 05:29 PM
Of course, Richard - but my app has about 25 grids that need to display status information.
I usually display number of rows in the dataset, number of visible rows in the grid and the time it took to load from the database
so that the user has more feedback about filtered rows and about db performance.
Plus I do show a button that lets the user clear all filters if any are set. (this may become obsolete with newer versions, but the filter UI used to be quite confusing in older versions).
Regards
Erwin
I usually display number of rows in the dataset, number of visible rows in the grid and the time it took to load from the database
so that the user has more feedback about filtered rows and about db performance.
Plus I do show a button that lets the user clear all filters if any are set. (this may become obsolete with newer versions, but the filter UI used to be quite confusing in older versions).
Regards
Erwin
0
Hello guys,
Thank you for this useful discussion. I think that other users might benefit from a code library regarding this subject.
Here is another approach for arranging the status strip. Please let me know how it works for you:
Stefan
the Telerik team
Thank you for this useful discussion. I think that other users might benefit from a code library regarding this subject.
Here is another approach for arranging the status strip. Please let me know how it works for you:
Imports Telerik.WinControls.UIImports Telerik.WinControlsPublic Class Form1 Private m_FilterCancelButton As RadButtonElement Private m_FilterLabel As RadLabelElement Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.RadGridView1.EnableFiltering = True Me.RadGridView1.ShowFilteringRow = True Me.RadGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.None Me.RadGridView1.Columns.Add(New GridViewTextBoxColumn("Name")) Me.RadGridView1.Columns.Add(New GridViewDecimalColumn("Value")) Dim rowInfo As GridViewRowInfo = Me.RadGridView1.Rows.AddNew() rowInfo.Cells(0).Value = "A1" rowInfo.Cells(1).Value = 3 rowInfo = Me.RadGridView1.Rows.AddNew() rowInfo.Cells(0).Value = "A2" rowInfo.Cells(1).Value = 4 rowInfo = Me.RadGridView1.Rows.AddNew() rowInfo.Cells(0).Value = "A3" rowInfo.Cells(1).Value = 5 rowInfo = Me.RadGridView1.Rows.AddNew() rowInfo.Cells(0).Value = "A4" rowInfo.Cells(1).Value = 6 rowInfo = Me.RadGridView1.Rows.AddNew() rowInfo.Cells(0).Value = "A2" rowInfo.Cells(1).Value = 4 rowInfo = Me.RadGridView1.Rows.AddNew() rowInfo.Cells(0).Value = "A3" rowInfo.Cells(1).Value = 5 rowInfo = Me.RadGridView1.Rows.AddNew() rowInfo.Cells(0).Value = "A4" rowInfo.Cells(1).Value = 6 Dim statusBar As New RadStatusStrip() statusBar.StatusBarElement.GripStyle = ToolStripGripStyle.Hidden m_FilterCancelButton = New RadButtonElement() m_FilterCancelButton.Text = "-" AddHandler m_FilterCancelButton.Click, AddressOf FilterCancelButton_Click m_FilterLabel = New RadLabelElement() m_FilterLabel.Text = " Currently Unfiltered" statusBar.Items.Add(m_FilterCancelButton) statusBar.Items.Add(m_FilterLabel) Dim hostItem As New RadHostItem(statusBar) hostItem.MinSize = New Size(0, 25) Me.RadGridView1.GridViewElement.Panel.Children.Insert(1, hostItem) Telerik.WinControls.Layouts.DockLayoutPanel.SetDock(hostItem, Telerik.WinControls.Layouts.Dock.Bottom) End Sub Private Sub FilterCancelButton_Click(ByVal sender As Object, ByVal e As EventArgs) Me.RadGridView1.FilterDescriptors.Clear() End Sub Private Sub RadGridView1_FilterExpressionChanged(ByVal sender As System.Object, ByVal e As Telerik.WinControls.UI.FilterExpressionChangedEventArgs) Handles RadGridView1.FilterExpressionChanged If e.FilterExpression.Length > 0 Then m_FilterLabel.Text = e.FilterExpression Else If m_FilterLabel IsNot Nothing Then m_FilterLabel.Text = "Currently unfiltered" End If End If End SubEnd ClassI am looking forward to your reply.
All the best,Stefan
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
0
Richard Slade
Top achievements
Rank 2
answered on 21 Apr 2011, 10:36 AM
Hi Stefan,
Thanks for the amendment. I will get this submitted as a Code Library project in both VB and C#. For reference though, the click event of the button element doesn't seem to fire when docked in this way. Instead I seem to need to use the MouseDown event.
Regards,
Richard
Thanks for the amendment. I will get this submitted as a Code Library project in both VB and C#. For reference though, the click event of the button element doesn't seem to fire when docked in this way. Instead I seem to need to use the MouseDown event.
Regards,
Richard
0
Hello Richard,
Thank you for submitting the Code Library article.
In regards to the Click event, I will add this to our issue tracking system and we will review it for a future release.
Greetings,
Stefan
the Telerik team
Thank you for submitting the Code Library article.
In regards to the Click event, I will add this to our issue tracking system and we will review it for a future release.
Greetings,
Stefan
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
0
Richard Slade
Top achievements
Rank 2
answered on 26 Apr 2011, 03:45 PM
Thanks for the update Stefan.
For anyone looking to download this in both CS and VB, the Code Library article is available here
Regards,
Richard
For anyone looking to download this in both CS and VB, the Code Library article is available here
Regards,
Richard
