Ankesh Bharti
Top achievements
Rank 1
Ankesh Bharti
asked on 01 Jun 2010, 06:02 AM
Hi,
According to some requirement in my project , I want to track column name and type of operation performed on that column through header context menu options. For Example :- In my grid, I have three columns named 'ProductID','ProductName' & 'CategoryID'. When I opened context menu by clicking right click on 'CategoryID' column in header of grid, and select 'Sort Ascending' or 'Group By'. Then Gird get sorted with 'CategoryID' in ascending order or Grid get grouped by column 'CategoryID'. Then finally I want to track the Column 'CtaegoryID' and operation 'Sort Ascending' or 'Group By' and want to save these two information in some string type global variables on completion of these operations.
Please provide me solution for this. Thanks a lot in advance for this solution.
Regards,
Ankesh Bharti
According to some requirement in my project , I want to track column name and type of operation performed on that column through header context menu options. For Example :- In my grid, I have three columns named 'ProductID','ProductName' & 'CategoryID'. When I opened context menu by clicking right click on 'CategoryID' column in header of grid, and select 'Sort Ascending' or 'Group By'. Then Gird get sorted with 'CategoryID' in ascending order or Grid get grouped by column 'CategoryID'. Then finally I want to track the Column 'CtaegoryID' and operation 'Sort Ascending' or 'Group By' and want to save these two information in some string type global variables on completion of these operations.
Please provide me solution for this. Thanks a lot in advance for this solution.
Regards,
Ankesh Bharti
6 Answers, 1 is accepted
0
Hi Ankesh,
The best option in this case is to subscribe to the ItemCommand server side event handler. This would give you a chance to track each operation, and get additional information on it via the command arguments.
I hope this gets you started properly.
Sincerely yours,
Yavor
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.
The best option in this case is to subscribe to the ItemCommand server side event handler. This would give you a chance to track each operation, and get additional information on it via the command arguments.
I hope this gets you started properly.
Sincerely yours,
Yavor
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
J2K
Top achievements
Rank 1
answered on 02 Dec 2010, 10:14 AM
Was this issue ever solved? We have the identical requirement of tracking/capturing what users are doing with the very convenient header contextmenu. The suggestion of capturing in the server itemcommand however seems to be a dead end as we can't detect that the command is firing on the server side when the header context menu is used.
0
Hello,
You can detect whether the HeaderContextMenu fired the command by checking the e.CommandSource value, which would point to the GridHeaderItem in case the header context menu was used.
Greetings,
Tsvetina
the Telerik team
You can detect whether the HeaderContextMenu fired the command by checking the e.CommandSource value, which would point to the GridHeaderItem in case the header context menu was used.
Greetings,
Tsvetina
the Telerik team
Browse the vast support resources we have to jumpstart your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.
0
K
Top achievements
Rank 1
answered on 15 Mar 2011, 11:14 PM
Hi,
I think there is something else missing here. It appears as if no server side events are firing. Or, at least, the page.load event isn't being hit.
Here is the grid I'm testing with
I think there is something else missing here. It appears as if no server side events are firing. Or, at least, the page.load event isn't being hit.
Here is the grid I'm testing with
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AutoGenerateColumns
=
"false"
width
=
"400px"
>
<
MasterTableView
IsFilterItemExpanded
=
"true"
ShowHeadersWhenNoRecords
=
"true"
EnableHeaderContextMenu
=
"true"
>
<
NoRecordsTemplate
/>
<
CommandItemSettings
ShowAddNewRecordButton
=
"false"
ShowRefreshButton
=
"false"
/>
<
Columns
>
<
telerik:GridTemplateColumn
uniquename
=
"Column1"
HeaderText
=
"Column 1"
DataField
=
"Column1"
>
<
ItemTemplate
>
</
ItemTemplate
>
<
FooterStyle
Width
=
"120px"
/>
<
HeaderStyle
Width
=
"120px"
/>
<
ItemStyle
Width
=
"100%"
/>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
uniquename
=
"Column2"
HeaderText
=
"Column 2"
DataField
=
"Column2"
>
<
ItemTemplate
>
</
ItemTemplate
>
<
FooterStyle
Width
=
"120px"
/>
<
HeaderStyle
Width
=
"120px"
/>
<
ItemStyle
Width
=
"100%"
/>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
uniquename
=
"Column3"
HeaderText
=
"Column 3"
DataField
=
"Column2"
>
<
ItemTemplate
>
</
ItemTemplate
>
<
FooterStyle
Width
=
"120px"
/>
<
HeaderStyle
Width
=
"120px"
/>
<
ItemStyle
Width
=
"100%"
/>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
And this is the code behind, I've removed the group by items in the menu because there aren't any group by expressions
Protected
Sub
RadGrid1_ItemCommand(
ByVal
sender
As
Object
,
ByVal
e
As
Telerik.Web.UI.GridCommandEventArgs)
Handles
RadGrid1.ItemCommand
Me
.Label1.Text = e.CommandName &
" "
& e.CommandSource
End
Sub
Protected
Sub
Page_Load(
ByVal
sender
As
Object
,
ByVal
e
As
System.EventArgs)
Handles
Me
.Load
Me
.RadScriptManager1.RegisterPostBackControl(
Me
.RadGrid1)
AddHandler
Me
.RadGrid1.HeaderContextMenu.PreRender, (
AddressOf
Me
.HeaderContextMenu_PreRender)
Me
.RadGrid1.DataSource =
String
.Empty
Me
.RadGrid1.Rebind()
End
Sub
Protected
Sub
HeaderContextMenu_PreRender(
ByVal
sender
As
Object
,
ByVal
e
As
System.EventArgs)
Dim
menu
As
RadContextMenu =
Me
.RadGrid1.HeaderContextMenu
For
Each
item
As
RadMenuItem
In
menu.Items
If
item.Text <>
"Columns"
Then
item.Target =
""
item.Visible =
False
End
If
Next
End
Sub
0
Hi,
The grid that you are testing with only has the columns menu which does not do any actions which would cause page postback. That is why your server-side events are not executed. The header context menu uses client script to hide columns.
Once I showed the sorting options in the menu and used them, the grid did a postback and both Page_Load and ItemCommand events were hit.
Regards,
Tsvetina
the Telerik team
The grid that you are testing with only has the columns menu which does not do any actions which would cause page postback. That is why your server-side events are not executed. The header context menu uses client script to hide columns.
Once I showed the sorting options in the menu and used them, the grid did a postback and both Page_Load and ItemCommand events were hit.
Regards,
Tsvetina
the Telerik team
0
K
Top achievements
Rank 1
answered on 23 Mar 2011, 06:31 PM
Thanks,
I used the information here: Getting familiar with client-side API to get the name of the columns when they were hidden or shown.
Specifically functions calling eventArgs.get_gridColumn().get_uniqueName() and hooked to the ClientEvents-OnColumnHiding and ClientEvents-OnColumnShown events in the clientsettings element.
I used the information here: Getting familiar with client-side API to get the name of the columns when they were hidden or shown.
Specifically functions calling eventArgs.get_gridColumn().get_uniqueName() and hooked to the ClientEvents-OnColumnHiding and ClientEvents-OnColumnShown events in the clientsettings element.