Hello all,
My problem is this: I have a drop down list inside of a context menu. When the selected index changes, I want to open that specific page view (handled by GoToWindow() method) and close the drop down and the parent context menu.
However, I can't figure out a way to have the context menu know when I am clicking on something in the child DropDownList element.
Here's my code for the context menu opening:
private
void
MPLList_GridView_ContextMenuOpening(
object
sender, ContextMenuOpeningEventArgs e)
{
List<BPPriceMstr> myBP =
new
List<BPPriceMstr>();
FactoryOrder bpOrder =
new
FactoryOrder();
int
index = MPLList_GridView.Rows.IndexOf(MPLList_GridView.CurrentRow);
bpOrder.AddOrderLine(
"CardCode"
, masterPriceLists[index].Business.CardCode);
BPPriceMstrFactory bpFactory =
new
BPPriceMstrFactory();
tmpDDL_MPLLists = bpFactory.BuildPriceMstr(bpOrder);
/////////////////////////////
//new code -- RRM and BRA
/////////////////////////////
//create empty drop down list
RadDropDownList mplDropDownList =
new
RadDropDownList();
mplDropDownList.Text =
"Select MPL"
;
//iterate over all MPLs and add them to the drop down list
foreach
(BPPriceMstr mpl
in
tmpDDL_MPLLists)
{
mplDropDownList.Items.Add(
new
RadListDataItem(mpl.StartDate.ToShortDateString() +
" - "
+ mpl.EndDate.ToShortDateString()));
}
//add selected index changed event handler
mplDropDownList.SelectedIndexChanged += mplDropDownList_SelectedIndexChanged;
//create content item for drop down list
RadMenuContentItem contentItem =
new
RadMenuContentItem();
RadHostItem host =
new
RadHostItem(mplDropDownList);
//populate the drop down list
contentItem.ContentElement = host;
//set the size of the MPL drop down menu
contentItem.AutoSize =
false
;
contentItem.Size =
new
System.Drawing.Size(150, 100);
//here we add an arrow to select MPL from the drop down list.
//if only one MPL, there will be only one to choose from
RadMenuItem mplSpecific =
new
RadMenuItem();
mplSpecific.Text =
"Open Specific Master Price List"
;
mplSpecific.Items.Add(contentItem);
RadMenuSeparatorItem separator =
new
RadMenuSeparatorItem();
e.ContextMenu.Items.Add(separator);
e.ContextMenu.Items.Add(mplSpecific);
}
Then, here is my method for when the selected index is changed for the drop down:
private
void
mplDropDownList_SelectedIndexChanged (
object
sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
{
//this method gets called whenever the DDL index is changed
//i.e. whenever a user selects a different MPL date range
RadDropDownList list = sender
as
RadDropDownList;
if
(list !=
null
&& e.Position > -1)
{
//Console.WriteLine("New Selected Item: " + list.Items[e.Position]);
//get the mpl id for the MPL date range selected
int
mplid = tmpDDL_MPLLists[e.Position].Id;
FactoryOrder myOrder =
new
FactoryOrder();
//create an order tuple to open the specific MPL page we want to view
myOrder.AddOrderLine(
"SpecificList"
, mplid.ToString());
//jump manager to pull up a specific MPL window tab
JumpOrder myJumpOrder =
new
JumpOrder();
myJumpOrder.factoryOrder = myOrder;
myJumpOrder.module =
"MPL"
;
myJumpOrder.targetWin =
"MPLS"
;
//issue: new MPLS tab should have date range populated
MainDockWin.mainJumpManager.PassJumpOrder(myJumpOrder);
MainDockWin.mainJumpManager.GoToWindow();
}
//need a way to hide the parent menu when sub-menu item is clicked and we jump...
//list.Visible = false;
//this only hides the MPL drop down list...
//how to hide the context menu?
//list.Parent.Visible = false;
//let the context menu know that there was a click...and close
list.Parent.Hide();
}
The list.Parent.Hide (or set Visible=false) only hides the drop down menu, not the overall context menu. list.Parent.Parent returns null. Any and all help is appreciated! Thanks
See attached screenshot for what I'm referring to as the behavior of my program.
Hello Telerik team , good time
I wrote a program in Persian (Iran) and it is right to left
I want to convert to English and turn it left to right by a new RESX file ,When I'm back in Persian Ù‘Form,Table headers are cleared
The relevant photos were attached , Thankful
Hi,
How I export to excel a VirtualGrid ?
Greetings,
I know If i want to reorder Radgridview columns, I should use : Radgridview1.Columns.Move(lastIndex , Newindex)
But I need to reorder columns at runtime and save the changes for the next run.
So I can use 2 buttons : MoveForward , MoveBackward.
And I can define 2 integer values in My.settings : LastIndex, NewIndex. (every column has these 2 integer values in my.settings)
plus, I need to have a combo box to select the current column.
As the Move function requires both the current index and desired index , it makes it a bit complicated with the combo Box and buttons. Because when I select and move a column no matter forward or backward (when combo box value is 1 , means the first column is out target to move), the current index should be updated with the desired index. For Example :
Column 1 is in index 0. Now I want to reorder in order to place it in Index 1. So :
I select value "1" in combo box, and then
With Radgridview1
.columns.move(combobox.text , combobox.text + 1)
End with
So what happens next ? If I'm about to move it 1 more index forward, then the above code should be ? How can I save latest changes in My.settings (the integer values we defined from the beginning)
What is your approach ?
Thanks for your attention.
Greetings,
I have a RadGirdView and a RadColorBox.
I want to change back/fore colors of each columns of the Radgridview, using the RadColorBox.
I know that I should use Cell-Formatting of the Radgridview, but the problem is that I can not see (update) the changes at runtime. The cell-formatting does its job only once and that is at the time of starting the program.
Anyway to see the changes at runtime ?
Thanks in advance.
I don't know why you delete my post. But it doesn't matter. I can post it again.
Backgroud
The behavior of split button makes me confused when I use split button collapsing the split panel. It locates in different position when I restore the split button by double-click. What's weirder is that double-click will make no effect when the split button located on the edge. I don't like these default behaviours.
Question
1. Do you know how to overwrite the default behaviour of split button?
2. Is there a virtual method or some event I can reimplement?
3. I want to collapse the right panel to the right side, and restore it to the initial location, and just these to behaviours. How can I do it?
Thanks!
hi
i want to enable border of area