void RenderDynamicMenu (HtmlTextWriter writer, MenuItem item) { _dynamicTemplate = GetDynamicMenuTemplate (item); string idPrefix = ClientID + "_" + item.Path; string [] param = new string [9]; param [0] = GetCssMenuStyle (true, item.Depth + 1); param [1] = idPrefix + "s"; param [2] = idPrefix + "cu"; param [3] = item.Path; param [4] = item.Path; param [5] = ScrollUpImageUrl != "" ? ScrollUpImageUrl : Page.ClientScript.GetWebResourceUrl (typeof (Menu), "arrow_up.gif"); param [6] = ScrollUpText; param [7] = idPrefix + "cb"; param [8] = idPrefix + "cc"; _dynamicTemplate.RenderTemplate (writer, param, 0, param.Length); RenderMenu (writer, item.ChildItems, true, true, item.Depth + 1, false); string [] param2 = new string [5]; param2 [0] = idPrefix + "cd"; param2 [1] = item.Path; param2 [2] = item.Path; param2 [3] = ScrollDownImageUrl != "" ? ScrollDownImageUrl : Page.ClientScript.GetWebResourceUrl (typeof (Menu), "arrow_down.gif"); param2 [4] = ScrollDownText; _dynamicTemplate.RenderTemplate (writer, param2, param.Length + 1, param2.Length); }
MenuRenderHtmlTemplate GetDynamicMenuTemplate (MenuItem item) { if (_dynamicTemplate != null) return _dynamicTemplate; _dynamicTemplate = new MenuRenderHtmlTemplate (); HtmlTextWriter writer = _dynamicTemplate.GetMenuTemplateWriter (); if (Page.Header != null) { writer.AddAttribute (HtmlTextWriterAttribute.Class, MenuRenderHtmlTemplate.GetMarker (0)); } else { writer.AddAttribute (HtmlTextWriterAttribute.Style, MenuRenderHtmlTemplate.GetMarker (0)); } writer.AddStyleAttribute ("visibility", "hidden"); writer.AddStyleAttribute ("position", "absolute"); writer.AddStyleAttribute ("z-index", "1"); writer.AddStyleAttribute ("left", "0px"); writer.AddStyleAttribute ("top", "0px"); writer.AddAttribute ("id", MenuRenderHtmlTemplate.GetMarker (1)); writer.RenderBeginTag (HtmlTextWriterTag.Div); // Up button writer.AddAttribute ("id", MenuRenderHtmlTemplate.GetMarker (2)); writer.AddStyleAttribute ("display", "block"); writer.AddStyleAttribute ("text-align", "center"); writer.AddAttribute ("onmouseover", string.Concat ("Menu_OverScrollBtn ('", ClientID, "','", MenuRenderHtmlTemplate.GetMarker (3), "','u')")); writer.AddAttribute ("onmouseout", string.Concat ("Menu_OutScrollBtn ('", ClientID, "','", MenuRenderHtmlTemplate.GetMarker (4), "','u')")); writer.RenderBeginTag (HtmlTextWriterTag.Div); writer.AddAttribute ("src", MenuRenderHtmlTemplate.GetMarker (5)); //src writer.AddAttribute ("alt", MenuRenderHtmlTemplate.GetMarker (6)); //ScrollUpText writer.RenderBeginTag (HtmlTextWriterTag.Img); writer.RenderEndTag (); // IMG writer.RenderEndTag (); // DIV scroll button writer.AddAttribute ("id", MenuRenderHtmlTemplate.GetMarker (7)); writer.RenderBeginTag (HtmlTextWriterTag.Div); writer.AddAttribute ("id", MenuRenderHtmlTemplate.GetMarker (8)); writer.RenderBeginTag (HtmlTextWriterTag.Div); // call of RenderMenu writer.Write (MenuRenderHtmlTemplate.GetMarker (9)); writer.RenderEndTag (); // DIV Content writer.RenderEndTag (); // DIV Scroll container // Down button writer.AddAttribute ("id", MenuRenderHtmlTemplate.GetMarker (0)); writer.AddStyleAttribute ("display", "block"); writer.AddStyleAttribute ("text-align", "center"); writer.AddAttribute ("onmouseover", string.Concat ("Menu_OverScrollBtn ('", ClientID, "','", MenuRenderHtmlTemplate.GetMarker (1), "','d')")); writer.AddAttribute ("onmouseout", string.Concat ("Menu_OutScrollBtn ('", ClientID, "','", MenuRenderHtmlTemplate.GetMarker (2), "','d')")); writer.RenderBeginTag (HtmlTextWriterTag.Div); writer.AddAttribute ("src", MenuRenderHtmlTemplate.GetMarker (3)); //src writer.AddAttribute ("alt", MenuRenderHtmlTemplate.GetMarker (4)); //ScrollDownText writer.RenderBeginTag (HtmlTextWriterTag.Img); writer.RenderEndTag (); // IMG writer.RenderEndTag (); // DIV scroll button writer.RenderEndTag (); // DIV menu _dynamicTemplate.Parse (); return _dynamicTemplate; }