2011-01-05 78 views
1

我在頁面上有超鏈接發送某些變量,例如Default.aspx?var1 = x & var2 = yASP.net圖像按鈕問題

然後我動態地創建一個ImageButton。我的ImageButton有它自己的事件。 似乎ImageButton繼承了超鏈接發送的值。如果我右鍵單擊圖像按鈕,並通過瀏覽器查看屬性,它也指向以下以及Default.aspx?var1 = x & var2 = y,然後我試圖關閉視圖狀態關閉哪一個沒有工作。

我也試過指定PostBackUrl,以便不發送url變量。但它的事件不會觸發。

是否有這就是ASP.NET的默認行爲,任何方式不是H

回答

1

ASP.NET中表單的回發URL始終與表單最初加載時使用的URL相同。因此,如果你從超鏈接加載一個查詢字符串的頁面,然後使用該頁面上的回發控件(比如ImageButton),它總是會回發到它最初加載的同一個URL,包括查詢字符串。

有不同的方法來改變取決於您使用的ASP.NET版本的回發URL,但如果2.0或更低,它將必須是JavaScript。在此問題上專門搜索(更改asp.net中的回髮網址或表單操作)以找到問題的答案。

其他較不優雅的解決方案包括在查詢字符串初始加載後,將頁面重定向到本身而沒有查詢字符串。

你也可以忽略回傳中的查詢字串,這幾乎總是所需的行爲,所以大多數情況下這是一個整型問題。例如。在你的代碼只是做...

if (!Page.IsPostback) { 
// check for querystring data and do stuff if there, otherwise ignore it 
} 
1

。由於ImageButton只會導致執行事件處理程序,因此附加到它的超鏈接將成爲其相同的頁面。

爲什麼這是一個問題?