在 ASP.NET 中将事件从页面发送到其母版页
如何在内容页面中引发其母版页可以响应的事件?
例如,我有一个使用母版页的内容页面。 母版页包含网站导航栏。 根据我所在的页面,我想向母版页发送一个事件,以更改导航栏中当前页面菜单项的 CSS 类。
我使用的是 Visual Studio 2008、ASP.NET 3.5 和 C#。
谢谢!
How do I raise an event in a content page that its master page can then respond to?
For example, I have a content page which is using a master page. The master page contains the website navigation bar. Depending on the page I'm on, I'd like to send an event to the master page to change the CSS class of the current page menu item in the navigation bar.
I'm using Visual Studio 2008 and ASP.NET 3.5 and C#.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
编辑,根据您的要求,您实际上并不需要事件,您只想调用主机上的方法。 在我的脑海中,在主控中:
然后在你的页面中:
Edit, from what your asking you don't really need an event, you just want to call a method on the master. off the top of my head, in the master:
then in your page:
如果该事件发生在所有内容页面上,请使用 Kirtan 的 BasePage 解决方案。 如果基本页面不合适,则在事件发生的每个页面中加载页面时添加此页面。
If the event happens on all content pages use Kirtan's BasePage solution. If a base page isn't appropriate, then within each page where the event happens add this when the page loads.
创建一个基本页面类。 创建相应的委托 & 事件相同。 然后在母版页中,执行以下操作 -
页面类必须是这样的 -
BasePage 类必须是这样的 -
Create a base page class. Create the respective delegate & event for the same. Then in the master page, do this -
The page class must be like this -
The BasePage class must be like this -
事件似乎不是表明这一点的最佳方式,因为您需要母版页来理解您的页面,您很可能在页面上有一个标准属性来指示它们在导航中的“键”。
在您的母版页代码中:
可导航界面:
页面实例:
An event doesn't seem like the best way to indicate this, given you need your masterpage to understand your pages, you could well have a standard property on the pages that indicates their 'key' in the navigation.
In your masterpage code:
Navigatable interface:
Page instance:
您可以使用称为 EventBubbling 的技术引发事件。
You can raise the event using a technique called as EventBubbling.