2008-10-24 26 views
0

我在控件中獲得了這個邏輯,爲圖像創建了一個正確的url。我的控件基本上需要顯示圖像,但src實際上是一個基於指向圖像服務器的不同參數的複雜字符串。Interference from asp:Image or asp:ImageButton?

所以我們決定創建一個控件MyImage派生自asp:Image - 它的作用就像一個魅力。現在我需要相同的邏輯,但現在我的圖像需要響應點擊。我的意思是 - 'MyImage'用於在網站上顯示圖像,但在少數情況下,我希望它是可點擊的。

我想我有三個選擇。

  1. 將MyImage更改爲從asp:ImageButton派生而不是asp:Image。
  2. 將MyImage中的所有代碼複製到新的MyClickImage中,並從asp:ImageButton派生。
  3. 在MyImage上纏繞邏輯以添加超鏈接,爲該超鏈接實施IPostbackHandler並添加處理事件的邏輯。

顯然我非常想避免使用選項2),因爲我將不得不維護兩個幾乎相同的控件。與選項1)我看到它的問題(也許我錯了嗎?)是所有不應該是可點擊網站上的圖像將會被自動變成可點擊的。選項3)似乎過於複雜,因爲我將不得不維護狀態,事件並手動建立鏈接。

我正在尋找一個快速回答,比如'你很愚蠢,只是當你不希望它被點擊時將屬性'x'設置爲false' - 但是如果我沒有誤認爲它不是明顯,ofcourse更詳盡的答案就可以了:)

編輯:添加第三個選項 - 我忘了,有擺在首位:)

回答

0

Gah ok'im stupid,我只需要設置enabled = "false"如果我不希望它是可點擊的。我認爲他們應該使用另一個名字,但「啓用」,因爲它在其他控件上有其他含義。

0

我會完全避免整個衍生業務,只是添加一個JavaScript onclick參數在我的圖像需要時。

我不知道你的頁面會發生什麼樣的點擊,但我想可以利用客戶端JavaScript來完成。

+0

我需要一個回傳來處理邏輯服務器端,我希望它成爲asp.net postback-flow的一部分,而不是ajax調用等。:) – 2008-10-24 09:24:52

相關問題