【问题标题】:Replace (or simulate) <asp:ImageButton with <asp:LinkButton by only changing .ascx file code仅通过更改 .ascx 文件代码将 <asp:ImageButton 替换为(或模拟)<asp:LinkBut​​ton
【发布时间】:2012-06-25 20:27:46
【问题描述】:

我有一个带有&lt;asp:ImageButton 的.ascx 页面,单击该页面会调用一个事件。

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

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

我考虑过将 ImageButton 留在页面上,其样式为“display:none;”,并添加 LinkBut​​ton 控件以调用 ImageButton 的事件 - 但我无法获得正确的 JavaScript 语法来完成这项工作。

欢迎提出建议。

我在此处使用您的建议取得了一些不错的进展,谢谢(我对 jQuery 最不熟悉,所以参加了这个 w/e 的速成课程)。

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

jQuery("#jlink").click(函数(事件){ jQuery('#dnn_ctr594_ViewAjaxModuleWrapper_ctr604_ProductPage_btnAddItem').click(); });

(我并没有说我使用 DotNetNuke 来保持我的问题简单——因此为什么要用 jQuery() 替换 $()。

然而,虽然这可以引用控件的渲染后 ID,但我似乎可以让 工作。我认为(但无法证明)我可以使用 jQuery("select[id$='btnAddItem']") 获得一个选择器,但是用 dnn_ctr594_ViewAjaxModuleWrapper_ctr604_ProductPage_btnAddItem 替换它不起作用。

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

最后的想法,谢谢?

【问题讨论】:

  • 您不能对两者使用同一个事件处理程序,LinkButton 使用 EventArgsImageButton 使用 ImageClickEventArgs

标签: javascript asp.net


【解决方案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 的想法(如之前的答案),以对比为 vanilla 编写它链接

另外 - 不要忘记为此包含 JQuery 库

【讨论】:

    【解决方案2】:

    已解决!

    我只是用 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>
    

    没有您的帮助,我们无法做到这一点。谢谢!

    【讨论】:

    • 一旦系统允许,别忘了接受这个答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多