我有一个LinkButton
动态创建Load
,然后将其添加到驻留在Master
页面的控件。下面是用于创建LinkButton
原代码:点击事件不会触发动态添加LinkButton
LockUnlock = new LinkButton() { ID = "LockUnlock", Visible = false };
LockUnlock.Click += LockUnlock_Click;
现在,当我第一次挖成这个问题我是这么认为的,我搬到了代码的override OnInit
它可能与ASP.NET生命周期,但这并没有解决它。
然后我开始设置ID
,因为这还没有完成。所以我说这行:
LockUnlock.ID = "LockUnlock";
,我试图在这两个OnInit
和Load
- 没有运气。
后来我想,因为我加入这实际上是一个ContentPlaceHolder
我可能需要使ID
静以得到这个工作的一部分,自定义控制,所以我加了这一点:
LockUnlock.ClientIDMode = ClientIDMode.Static;
我只在Load
中试过,但没有运气,说实话如果它不在Load
中工作,它几乎肯定不会改变OnInit
中的任何内容 - 这只是我的第一步,并且在很多方面真的让玛丽赞不绝口。
好了,所以现在我的地步,我觉得它关系到一个事实,即ResourceCenter
是添加到ContentPlaceHolder
,因此事件的自定义控制,虽然它是技术上勾搭上了,能不会因为class
的背景而被解雇。但我不确定该从哪里出发。
我是否需要为点击添加共享类?我是否需要连接自定义控件中的点击,然后从那里委托它?
我会喜欢不为使用这些解决方案,但嘿,我们做我们必须做的!我期待着大家对此的意见。
编辑
,增加了控制的ResourceCenter
的代码如下所示:
this.ResourceCenter.AddAdminLink(LockUnlock.Visible ? LockUnlock : null);
和ResourceCenter
控制,增加了其列表中的代码看起来是这样的:
if (link == null) { return; }
var wrapper = new HtmlGenericControl("li");
wrapper.Controls.Add(link);
this.AdminLinkList.Controls.Add(wrapper);
其中link
是通过上述行传递给方法的内容。
您可以共享将控件添加到页面的代码吗? – Andrei
@Andrei,请参阅我的编辑。 –
您正在添加哪个page_load事件控制母版页或内容页? –