使用递归服务器控件时多个 WebResources 输出为 html

发布于 2024-10-16 12:22:09 字数 139 浏览 1 评论 0原文

我创建了一个服务器控件,它使用递归来创建菜单。它本质上输出带有锚点的嵌套列表。

现在,这可以完美地工作,但是,由于控件调用本身来呈现子菜单,因此它还在 .

知道如何阻止这种情况发生吗?我只想要我的标签中的一个参考。

I have created a server control which uses recursion to create a menu. It essentially outputs nested lists with anchors inside them.

Now, this works perfectly, however, since the control is calling itself to render the child menus, it is also rendering multiple identical WebResource.axd javascript file references in .

Any idea how to stop this from happening? I just want the one reference in my tag.

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

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

发布评论

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

评论(1

岁月流歌 2024-10-23 12:22:09

我最终通过创建以下形式的私有构造函数来解决自己的问题:

private CustomControl(int level)
{
  this._Level = level + 1;
}

公共构造函数如下所示:

public CustomControl() : base()
{
  _Level = 1;
}

然后,在 OnInit 方法中输出客户端脚本时,我检查 _Level == 1 是否,仅在 _Level = 时输出客户端脚本= 1,就像这样:

protected override void OnInit(EventArgs e)
{
  base.OnInit(e);

  if(_Level == 1)
  {
    // Add client scripts to this.Page.Header.Controls
  }
}

我不确定这是否是最好的方法,但它对我有用。

I ended up solving my own problem by making a private constructor of the form:

private CustomControl(int level)
{
  this._Level = level + 1;
}

The public constructor looked like:

public CustomControl() : base()
{
  _Level = 1;
}

Then, when outputting the client scripts in the OnInit method, I checked whether _Level == 1, only outputting the client scripts if _Level == 1, like so:

protected override void OnInit(EventArgs e)
{
  base.OnInit(e);

  if(_Level == 1)
  {
    // Add client scripts to this.Page.Header.Controls
  }
}

I'm not sure if this was the best way, but it worked for me.

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