我有一个带有<asp:ImageButton
的.ascx页面,它会在点击时调用一个事件。
我想将其更改为<asp:LinkButton
并调用相同的事件。
我只能访问.ascx文件而不是代码。
我已经考虑将ImageButton留在刚刚使用“display:none;
”设置的页面上,并添加LinkButton控件来调用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替换它不会起作用。
那么我该如何动态引用控件对象呢?
最后的想法,谢谢?
答案 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>
没有你的帮助就无法完成。谢谢!