0

我在控件中得到了这个逻辑来为图像创建正确的 url。我的控件基本上需要显示图像,但 src 实际上是基于指向图像服务器的不同参数的复杂字符串。

所以我们决定创建一个从 asp:Image 派生的控件 MyImage - 它就像一个魅力。现在我需要相同的逻辑,但我的图像现在需要响应点击。我的意思是 - 'MyImage' 用于在网站上显示图像,但在极少数情况下,我希望它是可点击的。

我想我有三个选择。

  1. 将 MyImage 更改为从 asp:ImageButton 而不是 asp:Image 派生。
  2. 将 MyImage 中的所有代码复制到新的 MyClickImage 中并从 asp:ImageButton 派生。
  3. 在 MyImage 上包装逻辑以添加超链接,为该超链接实现 IPostbackHandler 并添加处理事件的逻辑。

显然,我非常想避免使用选项 2),因为我必须维护两个几乎相同的控件。我看到的选项 1) 的问题(也许我错了?)是网站上所有不应点击的图像将自动变为可点击。选项 3) 似乎过于复杂,因为我必须手动维护状态、事件和构建链接。

我正在寻找一个快速的答案,比如'你很愚蠢,当你不希望它可点击时,只需将属性'x'设置为 false' - 但如果我没记错的话,它并不是那么明显,当然是更详细的答案会很好:)

编辑:添加了第三个选项 - 我忘了把它放在首位:)

4

2 回答 2

0

我会完全避免整个派生业务,只需onclick在需要时向我的图像添加一个 JavaScript 参数。

我不知道点击会在您的页面中执行什么操作,但我想可以使用客户端 JavaScript 来完成。

于 2008-10-24T09:20:27.783 回答
0

好吧,我很愚蠢,enabled = "false"如果我不想让它可点击,我只需要设置。我认为他们应该使用另一个名称但“启用”,因为它在其他控件上具有其他含义。

于 2008-10-24T09:27:32.200 回答