Динамическое создание пунктов меню и необходимость вызова функции 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);