Hi dear:
I'm having the following scenario:
- RadGrid with RadContextMenu [ master grid].
- Edit form with other RadGrid(s) [children for the master].
the problem is that
when right clicking on row in the child grid it display the context menu of the master grid.
How can I do the following?
- Prevent the context menu from being displayed when I right click the child rows grid.
- Or displaying another one on the child grid.
Remark:
I try to create another context menu for the child grids but with no effect[ it also display the parent one]
this is done using :
- Rad controls for asp.net ajax
- framwork 3.5
8 Answers, 1 is accepted
0
Princy
Top achievements
Rank 2
answered on 20 Aug 2008, 08:02 AM
Hello Moustafa,
You can prevent the ContextMenu from appearing on clicking a DetailTableRow by using the code below.You need to set the Name property for the MasterTable to achieve this.
aspx:
Thanks
Princy.
You can prevent the ContextMenu from appearing on clicking a DetailTableRow by using the code below.You need to set the Name property for the MasterTable to achieve this.
aspx:
| <MasterTableView DataSourceID="SqlDataSource1" Name="Master" > |
| ---------- |
| </MasterTableView> |
| <ClientSettings> |
| <ClientEvents OnRowContextMenu="RowContextMenu" /> |
| </ClientSettings> |
| <script type="text/javascript" > |
| function RowContextMenu(sender, eventArgs) |
| { |
| if(eventArgs.get_tableView().get_name() == "Master") |
| { |
| var menu = $find("<%=RadContextMenu1.ClientID %>"); |
| var evt = eventArgs.get_domEvent(); |
| if(evt.target.tagName == "INPUT" || evt.target.tagName == "A") |
| { |
| return; |
| } |
| menu.show(evt); |
| } |
| } |
| </script> |
Thanks
Princy.
0
Moustafa
Top achievements
Rank 1
answered on 20 Aug 2008, 08:45 AM
Thanks you very much for your reply
what you suggest solved the first part successfully [prevent context menu from the child grid]
but
I'd like to be able to create another context menu for the child grid
when I try to do this it execute the javascript functions in the parent or master grid
thank you
what you suggest solved the first part successfully [prevent context menu from the child grid]
but
I'd like to be able to create another context menu for the child grid
when I try to do this it execute the javascript functions in the parent or master grid
thank you
0
Shinu
Top achievements
Rank 2
answered on 20 Aug 2008, 10:09 AM
Hi Moustafa,
You can create another ContextMenu for the ChildGrid and use the same logic as mentioned by Princy.
aspx:
js:
Thanks
Shinu.
You can create another ContextMenu for the ChildGrid and use the same logic as mentioned by Princy.
aspx:
| <MasterTableView DataSourceID="SqlDataSource1" Name="Master" > |
| <DetailTables> |
| <telerik:GridTableView AutoGenerateColumns="false" Name="Detail" DataSourceID="SqlDataSource1"> |
| ..... |
| </telerik:GridTableView> |
| </DetailTables> |
| .... |
| <telerik:RadContextMenu ID="RadContextMenu1" runat="server"> |
| <Items> |
| <telerik:RadMenuItem Text="Click"> |
| </telerik:RadMenuItem> |
| <telerik:RadMenuItem Text="Select"> |
| </telerik:RadMenuItem> |
| </Items> |
| </telerik:RadContextMenu> |
| <telerik:RadContextMenu ID="RadContextMenu2" runat="server"> |
| <Items> |
| <telerik:RadMenuItem Text="Add"> |
| </telerik:RadMenuItem> |
| <telerik:RadMenuItem Text="Delete"> |
| </telerik:RadMenuItem> |
| </Items> |
| </telerik:RadContextMenu> |
js:
| <script type="text/javascript" > |
| function RowContextMenu(sender, eventArgs) |
| { |
| if(eventArgs.get_tableView().get_name() == "Master") |
| { |
| var menu = $find("<%=RadContextMenu1.ClientID %>"); |
| var evt = eventArgs.get_domEvent(); |
| if(evt.target.tagName == "INPUT" || evt.target.tagName == "A") |
| { |
| return; |
| } |
| menu.show(evt); |
| } |
| if(eventArgs.get_tableView().get_name() == "Detail") |
| { |
| var menu1 = $find("<%=RadContextMenu2.ClientID %>"); |
| var evt = eventArgs.get_domEvent(); |
| if(evt.target.tagName == "INPUT" || evt.target.tagName == "A") |
| { |
| return; |
| } |
| menu1.show(evt); |
| } |
| } |
| </script> |
Thanks
Shinu.
0
Moustafa
Top achievements
Rank 1
answered on 20 Aug 2008, 11:02 AM
Oh
I did not include both the master and the details grid in the same page
the logic that currently I created it like the following
I need to be able to create a context menu for the child grid that is contained in the web user control that acts as the edit from for the parent grid.
I hope you understood my scenario
thanks for you
I did not include both the master and the details grid in the same page
the logic that currently I created it like the following
- Web user control for RadGrid that acts as the parent grid
- Another web user control that acts as an edit form for the parent grid.
- Inside the second web user control I create the child grids.
I need to be able to create a context menu for the child grid that is contained in the web user control that acts as the edit from for the parent grid.
I hope you understood my scenario
thanks for you
0
Princy
Top achievements
Rank 2
answered on 21 Aug 2008, 07:27 AM
Hello Moustafa,
To create a ContextMenu for a Grid in the WebUserControl use the same code as above with a different function name in the ascx page. Check out the following code.
ascx:
Thanks
Princy.
To create a ContextMenu for a Grid in the WebUserControl use the same code as above with a different function name in the ascx page. Check out the following code.
ascx:
| <%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %> |
| <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> |
| <script type="text/javascript" > |
| function ChildRowContextMenu(sender, eventArgs) |
| { |
| var menu = $find("<%=RadContextMenu1.ClientID %>"); |
| var evt = eventArgs.get_domEvent(); |
| if(evt.target.tagName == "INPUT" || evt.target.tagName == "A") |
| { |
| return; |
| } |
| menu.show(evt); |
| } |
| </script> |
| <telerik:RadGrid ID="RadGrid1" runat="server" DataSourceID="SqlDataSource1" > |
| <MasterTableView DataSourceID="SqlDataSource1" AutoGenerateColumns="True" > |
| </MasterTableView> |
| <ClientSettings> |
| <ClientEvents OnRowContextMenu="ChildRowContextMenu" /> |
| </ClientSettings> |
| </telerik:RadGrid> |
Thanks
Princy.
0
moustafa
Top achievements
Rank 1
answered on 21 Aug 2008, 08:26 AM
when I do what you describe in the web user control of the child grid it give me a java script error "ChildRowContextMenu is undefined"
please note the following
I have 3 web controls
like this
Main Grid--- (web user control [1])
|
|
----Edit Form (web user control [2])
|
|
--ChildGrid (web user control [3])
so i'd like to create the context menu for the 3rd Grid
first, It showed me the context menu of the MainGrid [1]
then with the help of telerik I was able to disable it from appearing.
when I try to do what you said it gives me the error
"ChildRowContextMenu is undefined"
although its realy exists and out of spelling errors.
thanks
please note the following
I have 3 web controls
- Contains the main Grid.
- Contains the edit form as a web user control
- Contains the child grid.
like this
Main Grid--- (web user control [1])
|
|
----Edit Form (web user control [2])
|
|
--ChildGrid (web user control [3])
so i'd like to create the context menu for the 3rd Grid
first, It showed me the context menu of the MainGrid [1]
then with the help of telerik I was able to disable it from appearing.
when I try to do what you said it gives me the error
"ChildRowContextMenu is undefined"
although its realy exists and out of spelling errors.
thanks
0
Moustafa
Top achievements
Rank 1
answered on 21 Aug 2008, 08:30 AM
when I do what you describe in the web user control of the child grid it give me a java script error "ChildRowContextMenu is undefined"
please note the following
I have 3 web controls
like this
Main Grid--- (web user control [1])
|
|
----Edit Form (web user control [2])
|
|
--ChildGrid (web user control [3])
so i'd like to create the context menu for the 3rd Grid
first, It showed me the context menu of the MainGrid [1]
then with the help of telerik I was able to disable it from appearing.
when I try to do what you said it gives me the error
"ChildRowContextMenu is undefined"
although its realy exists and out of spelling errors.
thanks
please note the following
I have 3 web controls
- Contains the main Grid.
- Contains the edit form as a web user control
- Contains the child grid.
like this
Main Grid--- (web user control [1])
|
|
----Edit Form (web user control [2])
|
|
--ChildGrid (web user control [3])
so i'd like to create the context menu for the 3rd Grid
first, It showed me the context menu of the MainGrid [1]
then with the help of telerik I was able to disable it from appearing.
when I try to do what you said it gives me the error
"ChildRowContextMenu is undefined"
although its realy exists and out of spelling errors.
thanks
0
Princy
Top achievements
Rank 2
answered on 25 Aug 2008, 10:38 AM
Hello Moustafa,
I could not replicate this issue at my end. It would be better if you could paste your aspx sample code here.
Princy.
I could not replicate this issue at my end. It would be better if you could paste your aspx sample code here.
Princy.