代码之家  ›  专栏  ›  技术社区  ›  Per Hornshøj-Schierbeck

从asp:Image还是asp:ImageButton进行交互?

  •  0
  • Per Hornshøj-Schierbeck  · 技术社区  · 16 年前

    我把这个逻辑放在一个控件中,为图像创建一个正确的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”——但如果我没有记错的话,这并不是那么明显,当然,一个更详细的答案也可以:)

    编辑:添加了第三个选项——我一开始就忘了把它放在那里:)

    2 回复  |  直到 16 年前
        1
  •  0
  •   Tomalak    16 年前

    我会完全避免整个衍生业务,只添加一个JavaScript onclick 需要时将参数添加到我的图像中。

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

        2
  •  0
  •   Per Hornshøj-Schierbeck    16 年前

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

    推荐文章