替换(或模拟)

时间:2012-06-22 10:14:29

标签: javascript asp.net

我有一个带有<asp:ImageButton的.ascx页面,它会在点击时调用一个事件。

我想将其更改为<asp:LinkButton并调用相同的事件。

我只能访问.ascx文件而不是代码。

我已经考虑将ImageButton留在刚刚使用“display:none;”设置的页面上,并添加LinkBut​​ton控件来调用ImageButton的事件 - 但我无法使用正确的JavaScript语法来实现此功能。

我欢迎提出建议。

我在这里使用你的建议取得了一些进展,谢谢(我对jQuery最不熟悉,因此我用了一个速成课程)。

我可以使用以下代码成功触发事件:

的jQuery( “#JLINK”)。单击(功能(事件){      jQuery的( '#dnn_ctr594_ViewAjaxModuleWrapper_ctr604_ProductPage_btnAddItem')点击()。 });

(我没有说我使用DotNetNuke来保持我的问题简单 - 所以为什么用jQuery()替换$()。

然而,虽然这可以引用控件的后期呈现ID,但我似乎可以得到&lt;%= btnAddItem%&gt;上班。我认为(但无法证明)我可以使用jQuery(“select [id $ ='btnAddItem']”)获取选择器,但用dnn_ctr594_ViewAjaxModuleWrapper_ctr604_ProductPage_btnAddItem替换它不会起作用。

那么我该如何动态引用控件对象呢?

最后的想法,谢谢?

2 个答案:

答案 0 :(得分: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.net web控件的客户端ID的想法(就像之前的回答一样),以便与为香草写它的对比链路

另外 - 不要忘记为此

包含JQuery库

答案 1 :(得分: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>

没有你的帮助就无法完成。谢谢!