0
동적으로 메뉴 항목을 작성하고 그 중 하나에서 javascript 함수를 호출해야합니다. 뒤에MenuItem은 javascript 함수를 호출합니다.
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);