MenuItem调用javascript函数
MenuItem call javascript function
动态构建菜单项并需要从其中一个调用 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);
调用 javascript 函数时遇到一些问题。
window.open 会工作,但会打开一个额外的页面,我需要更多地控制 window 打开。
需要这样做的原因是页面上有一个 iFrame 正在加载不同的页面。 Menu1_MenuItemClick 事件中使用了 RegisterStartupScript,但它正在刷新 iFrame 的源。
感谢您的任何建议。
更新
尝试走另一条路,但行不通:
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);
回到这个问题并使用 onclick 事件测试 html 中的 span 标记后,问题只是一些语法问题:
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);
以为我会 post 以防万一其他人遇到同样的问题。
动态构建菜单项并需要从其中一个调用 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);
调用 javascript 函数时遇到一些问题。
window.open 会工作,但会打开一个额外的页面,我需要更多地控制 window 打开。
需要这样做的原因是页面上有一个 iFrame 正在加载不同的页面。 Menu1_MenuItemClick 事件中使用了 RegisterStartupScript,但它正在刷新 iFrame 的源。
感谢您的任何建议。
更新
尝试走另一条路,但行不通:
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);
回到这个问题并使用 onclick 事件测试 html 中的 span 标记后,问题只是一些语法问题:
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);
以为我会 post 以防万一其他人遇到同样的问题。