【发布时间】:2014-01-26 09:04:05
【问题描述】:
我有一个从UserControl 继承的控件。这个控件上有一个LinkButton 和LbButtonClick(object sender, EventArgs e) 方法。我只有一个用于此控件的 ascx 文件和一个预编译程序集。
我需要用我自己的自定义方法替换LbButtonClick 方法。这该怎么做?我可以在 ascx 文件中执行此操作,还是必须在第一次在网页上加载控件时对其进行修改。
如果可能的话,我想使用第一个解决方案(ascx 文件) - 使我的修改尽可能接近控件本身。
已编辑
我要感谢 @pid 和 @Francesco Milani 的帮助。我正在考虑他们的解决方案,但在实施它们之前,我只是尝试了另一件事。我只是在上述控件的 ascx 文件中添加了这段代码。
<script runat="server" type="text/C#">
protected void LbButtonClick(object sender, EventArgs e)
{
//Some code here...
}
</script>
它奏效了。似乎允许在 ascx 文件中重新定义方法,并且调用此重新定义的方法而不是在程序集中预编译的方法。我没有从编译器那里得到任何信息,也没有警告或提示。很奇怪,我不明白。由于这比建议的解决方案更简单、更清晰,我会接受它作为答案,但我不喜欢接受我自己的答案。
也许有人可以解释一下为什么上述构造有效?
【问题讨论】:
标签: c# user-controls asp.net-4.0 ascx