2015-01-24 21 views
0

Динамическое создание пунктов меню и необходимость вызова функции javascript из одного из них.MenuItem call javascript function

function popWin(url) { 
     var winHandle = window.open(url, '_blank', 'width=1000,height=700,resizable=yes,top=5,left=5,scrollbars=yes,status=yes'); 
    } 

<asp:Menu ID="Menu1" runat="server" StaticDisplayLevels="8" RenderingMode="List" OnMenuItemClick="Menu1_MenuItemClick" CssClass="menu" Width="150px"> 
</asp:Menu> 

Код позади:

 string url = "/somepage.aspx"; 
     MenuItem child = new MenuItem(); 
     child.Text = "Some Text"; 
     child.NavigateUrl = "javascript:popWin('" + url + "');"; 
     //child.NavigateUrl = "javascript:window.open('somepage.aspx');"; 
     Menu1.Items[1].ChildItems.Add(child); 

Просто возникли некоторые проблемы с вызовом в яваскрипта функцию.
Window.open будет работать, но открывается дополнительная страница, и мне нужно больше контролировать открытие окна.

Причина, по которой это необходимо сделать, - это iFrame на странице, загружающей разные страницы. RegisterStartupScript использовался в событии Menu1_MenuItemClick, но он обновлял источник iFrame.

Спасибо за любые предложения.

UPDATE

Попытка пойти другой маршрут на это, но просто не работает правильно:

 child = new MenuItem(); 
     string win = "/SomePage.aspx"; 
     string script = "popWin(" + win + ");"; 
     string text = "<span style='cursor:pointer;' onclick='" + script + "'>Some Text</span>";   
     child.Text = text;    
     child.Selectable = false; 
     Menu1.Items[1].ChildItems.Add(child); 

ответ

0

После возвращения к этой проблеме и тестирования диапазона тег в HTML с событием OnClick, то проблема была просто немного синтаксисом:

 child = new MenuItem(); 
     string win = "/SomePage.aspx"; 
     string script = "popWin('" + win + "');"; 
     string text = "<span style=\"cursor:pointer;\" onclick=\"" + script + "\">Some Text</span>"; 
     //Below is how it should render 
     //<span style="cursor:pointer;" onclick="popWin('/SomePage.aspx');">Some Text</span> 
     child.Text = text; 
     child.Selectable = false; 
     Menu1.Items[1].ChildItems.Add(child); 

Мысль я бы этот пост только в случае, если кто-то работает в том же I СГУП.