Я решил свою собственную проблему, создав частный конструктор вида:
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
}
}
Я не уверен, что это был лучший способ, но у меня это сработало.