2012-06-22 52 views
1

替換(或模擬)帶有 <asp:ImageButton,它在點擊時調用一個事件。 只通過更改.ascx文件代碼

我想將其更改爲<asp:LinkButton並調用相同的事件。

我只能訪問.ascx文件,而不是後面的代碼。

我已經考慮離開ImageButton只用「display:none;」樣式的頁面,並添加LinkBut​​ton控件來調用ImageButton的事件 - 但我無法獲得正確的JavaScript語法來使這項工作。

我歡迎您的建議。

我在這裏使用你的建議取得了一些進展,謝謝(我對jQuery的瞭解並不多,所以採用了這個w/e的崩潰過程)。

我可以使用下面的代碼成功觸發事件:

的jQuery( 「#JLINK」)點擊(函數(事件){。 的jQuery( '#dnn_ctr594_ViewAjaxModuleWrapper_ctr604_ProductPage_btnAddItem')點擊(); }) ;

(我並沒有說我是用DotNetNuke的,以保持我的問題很簡單 - 。)與jQuery因此爲什麼更換$(()的

但是同時這個作品引用控件的後期渲染ID我認爲(但不能證明)我可以使用jQuery(「select [id $ ='btnAddItem']」)得到一個選擇器,但用dnn_ctr594_ViewAjaxModuleWrapper_ctr604_ProductPage_btnAddItem替換這個選擇器看不到工作

那麼我如何動態地引用控制對象?

最後的想法,謝謝?

+1

你不能使用同一個事件處理函數,'LinkBut​​ton'使用'EventArgs'和'ImageButton'使用'ImageClickEventArgs' – yogi

回答

1

關於使用JQuery當圖像按下按鈕即

$('#linkButtonID').click(function(){ 
    $('#imageButtonID').click(); 
}); 

模擬鏈路上的點擊可能工作

編輯

什麼作爲另一點 - 如果你能不能訪問後面的代碼,那麼把asp.net webcontrols放在你的標記上沒什麼意義。無論如何,您無法訪問服務器端事件和屬性。我只想把一個正常的錨標記上 - 這將是一個更容易在JavaScript和JQuery一起工作,即

<a href="#" id="linkID">Click this</a> 

然後JQuery的變成

$('#linkButtonID').click(function(){ 
    $('#<%=imageButtonID.ClientID%>').click(); 
}); 

第一個代碼只是給你一個想法,但我已經包括了爲asp寫出客戶端id的想法。這是已經存在(如前面的答案)淨Web控件來對比對寫它的香草鏈接

而且 - 不要忘了,包括jQuery庫這個

0

解決!

簡單地說,我將選擇器與ImageButton的ID進行了通配,而不是試圖以編程方式獲得完整的對象引用。作爲

代碼如下:

<a href="#" id="jlink" class="txtbutton">Click Here</a> 
<asp:ImageButton ID="btnAddItem" runat="server" ImageUrl="jbtn.gif" style="display:none;"></asp:ImageButton> 

<script type="text/javascript"> 

jQuery("#jlink").click(function(event){ 
jQuery("[id$=btnAddItem]").click(); 
}); 

</script> 

不能都做到了沒有你的幫助。謝謝!

+0

一旦系統允許你這樣做,不要忘記接受這個答案。 –