我在控件中得到了这个逻辑来为图像创建正确的 url。我的控件基本上需要显示图像,但 src 实际上是基于指向图像服务器的不同参数的复杂字符串。
所以我们决定创建一个从 asp:Image 派生的控件 MyImage - 它就像一个魅力。现在我需要相同的逻辑,但我的图像现在需要响应点击。我的意思是 - 'MyImage' 用于在网站上显示图像,但在极少数情况下,我希望它是可点击的。
我想我有三个选择。
- 将 MyImage 更改为从 asp:ImageButton 而不是 asp:Image 派生。
- 将 MyImage 中的所有代码复制到新的 MyClickImage 中并从 asp:ImageButton 派生。
- 在 MyImage 上包装逻辑以添加超链接,为该超链接实现 IPostbackHandler 并添加处理事件的逻辑。
显然,我非常想避免使用选项 2),因为我必须维护两个几乎相同的控件。我看到的选项 1) 的问题(也许我错了?)是网站上所有不应点击的图像将自动变为可点击。选项 3) 似乎过于复杂,因为我必须手动维护状态、事件和构建链接。
我正在寻找一个快速的答案,比如'你很愚蠢,当你不希望它可点击时,只需将属性'x'设置为 false' - 但如果我没记错的话,它并不是那么明显,当然是更详细的答案会很好:)
编辑:添加了第三个选项 - 我忘了把它放在首位:)