2009-11-12 27 views
0

我有一個ImageButton被構建在radgridview columnn內部。它被定義如下。ImageButton不符合codebind方法,但如果替換爲LinkBut​​ton

<asp:ImageButton ID="ImageButton_DeleteRun" ImageUrl="~/Assets/Images/Misc/delete.png" 
runat="server" OnClick="QueryDelete" CommandName="QueryDelete" 
CommandArgument='<%# DataBinder.Eval(Container,"DataItem.QueryGuid") %>' 
Width="10" Height="10" /> 

它加載正確。當我點擊它時,我預計會碰到以下代碼隱藏方法:

protected void QueryDelete(object sender, EventArgs e) 
{ 
/* A bunch of code*/ 
} 

它永遠不會到達那裏。更值得一提的是,如果我將ImageButton替換成

<asp:LinkButton ID="ImageButton_DeleteRun" Text="X" 
runat="server" OnClick="QueryDelete" CommandName="QueryDelete" 
CommandArgument='<%# DataBinder.Eval(Container,"DataItem.QueryGuid") %>'/> 

它完美地工作。 ImageButton有什麼問題嗎?我錯過了什麼嗎?

編輯 - 新信息

基本上當圖像按鈕呈現,沒有HREF。

Weird--

<input type="image" style="height: 10px; width: 10px; border-width: 0px;" src="../Assets/Images/Misc/delete.jpg" 
id="ctl00_ctl00_ctl00_AllContent_MainContent_MainContent_controlPanelQueryHistory_saved_RadGridQueryHistory_ctl00_ctl04_ImageButton1" 
name="ctl00$ctl00$ctl00$AllContent$MainContent$MainContent$controlPanelQueryHistory_saved$RadGridQueryHistory$ctl00$ctl04$ImageButton1"/> 

<a 
href="javascript:__doPostBack('ctl00$ctl00$ctl00$AllContent$MainContent$MainContent$controlPanelQueryHistory_saved$RadGridQueryHistory$ctl00$ctl04$ImageButton_DeleteRun','')" 
id="ctl00_ctl00_ctl00_AllContent_MainContent_MainContent_controlPanelQueryHistory_saved_RadGridQueryHistory_ctl00_ctl04_ImageButton_DeleteRun">delete</a> 

回答

4

作爲一項解決方案,您可以嘗試在LinkBut​​ton中包裝圖像。

<asp:LinkButton ID="ImageButton_DeleteRun" Text="X" 
runat="server" OnClick="QueryDelete" CommandName="QueryDelete" 
CommandArgument='<%# DataBinder.Eval(Container,"DataItem.QueryGuid") %>'> 
    <img src="~/Assets/Images/Misc/delete.png" /> 
</asp:LinkButton> 
0

也許在頁面驗證?如果是這樣,請嘗試將CausesValidation = false添加到ImageButton。

+0

剛剛試了一下,沒有運氣:-( – Matt 2009-11-12 23:43:00

0

您可能想嘗試用OnCommand替換OnClick以查看是否可以解決問題。

+0

我想這就是答案,預計有一定的處理程序。 – IrishChieftain 2009-11-12 23:50:23

+0

這是解決不了問題。使用的OnClick只是意味着正被設置韓元」的CommandArgument不要發送給事件處理程序,因此毫無意義 – AverageAdam 2009-11-13 00:00:53

+0

不行 - 我想我現在只需要繼續使用LinkBut​​ton :-( – Matt 2009-11-13 00:01:31

0

愚蠢的問題 - 但是ImageUrl渲染一個有效的圖像或紅色的x?

+0

這是一個有效的圖像,這是我檢查的第一件事,因爲我知道ImageURL必須至少指定 – Matt 2009-11-12 23:51:31

+0

嘗試使用非PNG的東西? – zincorp 2009-11-12 23:52:38

+0

只是用J試了一下PG - 問題依然存在:-( – Matt 2009-11-12 23:58:12

0

將兩種鏈接類型放在頁面中,然後在結果頁面上查看源代碼。這可能會給你一些線索,看看發生了什麼。它可能會以一種JavaScript或CSS混亂的方式渲染ImageButton

0

如何獲得OnClick中的命令參數?你有一個EventArgs。 的按需處理具有包含的CommandName CommandEventArgs和CommandArguments:

protected void image_Command(object sender, CommandEventArgs e) 
{ 
} 

這將是有意義的使用按需。