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

时间:2011-02-08 06:25:01

标签: asp.net custom-server-controls webresource.axd

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

现在,这非常有效,但是,由于控件正在调用本身来呈现子菜单,因此它还会呈现多个相同的WebResource.axd javascript文件引用。

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

1 个答案:

答案 0 :(得分:0)

我最终通过创建表单的私有构造函数来解决我自己的问题:

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
  }
}

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