Hello,
since the expanding and selection of a submenu-item (my other post) in code behind (for ex. there are four levels and fourten nodes
A1000 -- A1100 -- A1110 -- A1111
| | -- A1112
| | -- A1113
| -- A1200 -- A1210
| -- A1220
| -- A1230
| -- A1240
B1000 -- B1100
C1000
is on the way to a never ending story (no solution realy work), i am looking for an other solution. My problem: each node in my example should load some content in a textarea, if the user select the node (or item); so if i click on A1200 --> expand the submenu (A1210, ...), load the contetent for 'A1200' and don't close the menu (stay where you are).
My first try was to sent the item-click to the server; in the item-value of the menu, i store the id of the record that i load via datareader and bind to the textarea.text.
But there is a postback and the mneu is closed. I found no way to open in code behind!
So is there a way to open/expand the menu to a special node (A1200 ??) on page load?
Any better solution??
Thanks
Patric
Hello Anton,
you are 100% right, that an Ajax-solution would be better, but sometimes you go in one direction (the quick and dirty way) and on the way you realize there is e better way. And than you can choose this better way or think 'No, i want to stay on my way; there must be a solution too'. I know that's sometimes stupid.
Again,
thanks for our help,
Hi,
It is good that you solved your issues. However, looking at your other post (http://ko.infragistics.com/community/forums/t/71197.aspx), I have commented at the bottom, that it might be a better idea to have everything more AJAX style and handle everything on the client side. For example - handle the client Click event, not the server one. Then load the content cia AJAX, and finally prevent the menu from closing, by cancling the ItemCollapsing client side event. I think this way you will achieve much better user experience, and it is not that complex to implement. I would say maybe even easier than what you did now.
Cheers,
it is as i expected, the problem is the 'selected_item' collection. I found no way on client side to clear this collection. So i do the hard way on server side; Menu.Databind()!
And all works fine.
protected void wdm_Item_Click(object sender, Infragistics.Web.UI.NavigationControls.DataMenuItemEventArgs e)
{
string sSeite = e.Item.Value;
hf_Menu.Value = string.IsNullOrEmpty(e.Item.Target) ? "0" : e.Item.Target; // in Target ist die Adresse kodiert
if (int.TryParse(sSeite, out iSeite))
Lade_Daten();
WebDataMenu2.DataBind(); }
}
The final hint in this direction came from my other post: http://ko.infragistics.com/community/forums/t/71197.aspx
function wdm_Menu_Init(sender, args) {
if (sender.get_selectedItem() != null) {
alert(sender.get_selectedItem().get_valueString());
// to heavy !! sender.get_selectedItem().dispose();
// no result !! sender.get_selectedItem().set_selected(false);
// works, but also freeze!! sender.get_selectedItem().open();
var adresse = $("[id$='hf_Menu']").val()
//alert(adresse);
var Item1 = sender.resolveItem(adresse);
Item1.open();
Not a real solution, but a workaround for me!
Hello Anton, i don't understand, that you don't have this effect. I test it again on IE 9, FF 14 with Win 7 Ultimate x64 and Vista. Two clicks on the branch 'Sternenweg', it expand never more. But i checked the nodes with some Firefox Tools and it seems, that the node 'Sternenweg' is in the ItemSelected Collection and the other nodes aren't. Is this a caching problem? So if the Initialize event on the client is fired aifter a postback, is it shure that the whole structure is rebuilded new? Or looks the control in the client cache and try to rebuild from cache? Or from viewstate, or Ajax-viewstate ???
But If it works for you (no freezing), how can this happen. This points to a problem in the Client Environment, but i test with and without proxy, same result.
Is there a way to destroy the menu (release the cache or so on) and rebuild it from server?