在服务器上生成和突出显示菜单项的最佳方式(asp.net)

发布于 2024-07-07 19:10:42 字数 304 浏览 7 评论 0原文

我有一个 ascx 组件,它包含两级菜单,因为有多种用户类型,并且菜单需要在服务器上计算。

无论如何 - 我还在服务器上突出显示当前菜单项(将选定的类/css 添加到项目中)。 使用 javascript 突出显示不是一个好的选择,因为数据网格中有内容,这会导致回发并且需要将菜单保留在与所选值相同的位置。 因此,我将其作为某种与哈希表的映射(例如对(站点的 URL、要突出显示的菜单项))进行操作,并且我必须为我的 Web 应用程序中包含的每个站点包含一个映射我想要突出显示菜单...所以不知怎的,它让我烦恼,必须有更好的方法来做到这一点。 有更好的技术吗?

I have an ascx component, that holds two-level menu, because there are several user types, and the menu needs to be computed on server.

Anyways - I'm also doing the highlighting of current menu item on server (adding a selected class/css to an item). Highlighting with javascript is not good option, because there is content in datagrids, that causes postback and needs to remain the menu in the same position as selected value is.
So I am doing this as some kind of mapping with a hashtable (e.g. pairs (url-of-the-site, menu-item-to-highlight)), and i have to include a mapping for every site my web application contains in order i want to have menus highlighted... so somehow it bothers me that there has to be a better way to do this. are there any better techniques?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

与酒说心事 2024-07-14 19:10:42

我在 .NET 2.0 的母版页/内容页上使用的一项技术是拥有一个名为“SetNavigation”的可公开访问的方法,该方法采用与我想要突出显示的超链接控件相关的字符串字符。 该方法的作用是将指定超链接的 CSS 样式表设置为我的“选定”超链接。

然后在我的子页面中,在 Page_Load 方法中,我调用 SetNavigation 方法并根据我所在的当前页面传入链接,例如 SetNavigation("hypSearch")

我认为您可以在您的 ASCX 控件,然后让您的 Page_Load 事件,甚至按钮单击事件调用该方法(如果需要)。

A technique I use on my master page/content pages with .NET 2.0 is to have a publicly accessible method called "SetNavigation" that takes a string character that correlates to the hyperlink control I want to highlight. What the method does is set the CSS stylesheet of the specified hyperlink to my "selected" one.

Then in my child pages, in the Page_Load method, I call the SetNavigation method and pass in the link based on the current page I'm on, such as SetNavigation("hypSearch")

I would gather that you could create a similar control on your ASCX control and then have your Page_Load events, or even button click events call the method if so desired.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文