来自asp:Image或asp:ImageButton?

时间:2008-10-24 09:15:01

标签: asp.net inheritance user-controls

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

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

我想我有三个选择。

  1. 将MyImage更改为派生自asp:ImageButton而不是asp:Image。
  2. 将MyImage中的所有代码复制到新的MyClickImage中,并从asp:ImageButton派生。
  3. 在MyImage上换行逻辑以添加超链接,为该超链接实现IPostbackHandler并添加处理事件的逻辑。
  4. 显然我非常想避免使用选项2)因为我必须保持两个几乎相同的控件。选项1)的问题,因为我看到它(也许我错了?)是网站上不应该被点击的所有图像都会自动变为可点击。选项3)似乎过于复杂,因为我必须手动维护状态,事件和构建链接。

    我正在寻找一个快速回答,例如'你是愚蠢的,只是当你不希望它被点击时,将属性'x'设置为false' - 但如果我没有误会它不是那么明显当然,更精细的答案会很好:)

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

2 个答案:

答案 0 :(得分:0)

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

我不知道你的网页会点击什么,但我想可以利用客户端JavaScript来完成。

答案 1 :(得分:0)

Gah ok'我很蠢,如果我不希望它可点击,我只需设置enabled = "false"。我认为他们应该使用另一个名称但是“启用”,因为它在其他控件上有其他含义。