健全性检查:母版页、内容页和 ASCX 依赖性

发布于 2024-11-25 04:33:16 字数 387 浏览 0 评论 0原文

我希望有人能检查一下我们正在做的事情,并告诉我我们的处理方式是否奇怪。

我拥有的:

  • 我们有一个.master(母版页)、.aspx(内容页)和一个.ascx(用户控件)。
  • 用户控件应出现在所有页面上,因此我们将其放置在母版页上
  • 。用户控件应根据其出现的内容页进行不同的初始化。因此,内容页有责任在用户控件上引发事件,传递一些参数,从而初始化控件。

问题:

在我看来,这消除了用户控件与内容页或母版页之间的任何依赖关系。我说得对吗?

在用户控件上调用事件是传递参数并相应初始化控件的最简单方法吗?

很高兴澄清任何进一步的问题,谢谢。

I'd like someone to give what we're doing a glance-over and tell me whether we're going about it an odd way.

What I have:

  • We have a .master (Master Page), .aspx (Content Page) and an .ascx (User Control).
  • The User Control should appear on all pages, so we have placed it on the Master Page
  • The User Control should be initialised differently based on the Content Page it appears on. So, the Content Page has the resposibility of raising an event on the User Control, passing in some arguments, which initialises the control.

Questions:

In my mind, this removes any dependency between the User Control and either the Content Page or Master Page. Am I correct?

Is calling an event on the User Control the easiest way to pass arguments in and initialise the control accordingly?

Happy to clarify any further points, Thanks.

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

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

发布评论

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

评论(1

倾听心声的旋律 2024-12-02 04:33:16

我想说没关系,但我想寻求澄清:用户控件如何订阅内容页的事件?

或者,您也可以考虑为母版页创建一个接口:

public interface IMyMaster
{
  UserControlType Control { get; }
}

将此接口应用于母版后,该接口可以返回对控件的直接引用。然后内容页面可以执行:

if (this.Page.Master is IMyMaster) {
   ((IMyMaster)this.Page.Master).Control.Initialize();
}

HTH。

I would say that's OK, but I would like to seek a clarification: how does the user control subscribe to the event of the content page?

Alternatively, you could also consider creating an interface for the master page:

public interface IMyMaster
{
  UserControlType Control { get; }
}

After applying this interface to the master, the interface can return a direct reference to the control. The content page can then do:

if (this.Page.Master is IMyMaster) {
   ((IMyMaster)this.Page.Master).Control.Initialize();
}

HTH.

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