【问题标题】:How to avoid Menu items having navigate Url property with #如何避免使用 # 导航 Url 属性的菜单项
【发布时间】:2012-07-16 06:54:44
【问题描述】:

我正在将一些项目绑定到菜单。假设我的站点地址是“www.abc.com/Dev”,菜单项自动获取“www.abc.com/Dev/#”的navigationUrl。

现在,单击这些菜单项会打开一些应用程序,例如“记事本”。

由于这些菜单项的 navigateUrl 属性,如果我右键单击这些项目,它会给我一个上下文菜单,如果我单击“在新窗口中打开”,它会将我带回到我的原始站点。

理想情况下,这是错误的行为。 有什么方法可以阻止navigationUrl的设置吗?我尝试制作:

menuItem.NavigateUrl = null

但是一旦 menuItems 被初始化,它们的 navigateUrl 属性就会被设置为 #。

有什么办法可以防止这种情况发生。

【问题讨论】:

  • menuItem.NavigateUrl = string.empty 你试过这个吗?
  • 我试过 menuItem.NavigateUrl = string.Empty 和 menuItem.NavigateUrl = ""... 但是一旦渲染,它们都将 navigateUrl 设置为 '#"。

标签: asp.net contextmenu menuitem navigateurl


【解决方案1】:

在这种情况下,请执行以下操作,

输入 menuItem.NavigateUrl = string.Empty 或 menuItem.NavigateUrl = "" 这将产生 "#"

在顶部添加 menuItem.attributes.add("onclick","TrackRightClickAndReturnFalse")

这样你可以有“#”但是你可以防止右键点击它...

请参阅此How to disable right-click context-menu in javascript,了解如何了解如何禁用右键单击。

希望你能理解我的概念。

【讨论】:

  • 感谢 Jigar Pandya,我试过这个:menuItem.Attributes.Add("onContextMenu","re​​turn false;");这实质上阻止了上下文菜单的出现。再次感谢。 :)
  • 我很乐意这样做。但是我对 Stack Overflow 比较陌生,而且我没有足够的声誉点来做到这一点。 :(
【解决方案2】:
menuItem.NavigateUrl = "javascript: void(0);";

【讨论】:

  • 这可以防止导航发生。但不幸的是,它禁用了默认的左键单击行为。菜单项一旦被点击就什么也不做。 :(
猜你喜欢
  • 2023-03-11
  • 2020-01-21
  • 1970-01-01
  • 1970-01-01
  • 2021-04-22
  • 1970-01-01
  • 2017-05-02
  • 2011-10-03
  • 1970-01-01
相关资源
最近更新 更多