通过调用.click()来触发asp:Button的OnClick函数

时间:2011-06-13 21:52:22

标签: javascript asp.net html

我想从Javascript函数中调用一些服务器端代码。

我有这个按钮:

<asp:Button ID="quickAdd" runat="server" text = "Quick add" OnClick="QuickAdd" />

如果单击它,则按预期调用C#函数QuickAdd

我在javascript函数中有这个命令:

document.getElementById("quickAdd").click();

并且此函数的执行不执行任何操作。没有错误,我认为它只是单击按钮但这不会导致触发QuickAdd C#函数触发所需的事件。

我该如何解决这个问题?

5 个答案:

答案 0 :(得分:1)

代替

的document.getElementById( “快速添加”)点击();

使用

document.getElementById('&lt;%= quickAdd.ClientID%&gt;')。click();

其中quickAdd实际上是按钮变量的代码名称。这只是因为你无法引用那个html项,因为在运行时ID会因runat =“server”而改变 - 所以这只是部分答案

答案 1 :(得分:0)

具体来说,您应该尝试.onclick()方法,但是这里给出了更全面的处理方法:

  

Is it possible to trigger a link's (or any element's) click event through JavaScript?

答案 2 :(得分:0)

你有2种方法。

  • 您可以忘记QuickAdd服务器事件并拨打ajax电话see here how can this be done
  • 您可以使用ASP.NET AJAX调用来执行帖子,只需将鼠标悬停在链接中并查看将要执行的javascript,然后复制并使用该方法{{1} }

答案 3 :(得分:0)

.click()在Javascript中不是原生的(它在jQuery中)。因此,当你调用.click()时,不会发生任何事情,因为没有指定.click()。

如果您想获得对象的onclick方法,请使用以下代码:

 var func = document.getElementById("quickAdd").onclick;

此时,func是#quickAdd元素的onclick函数。所以,此时,您可以致电:

func();

document.getElementById("quickAdd").onclick();

其中任何一个都会获得并执行你的onclick事件。

如果这没有帮助,请在Firefox中启动页面并使用Firebug控制台执行您的javascript(Firebug是一个可以安装的Firefox插件,它可以让您访问它)。

答案 4 :(得分:0)

 $(document).ready(function () {

        $('#btnCancel').click(function (e) {
            e.preventDefault();

            $("<div><span><b>Are you sure you want to cancel this order?</b></span></div>").dialog({
                modal: true,
                draggable: false,
                resizable: false,
                width: 430,
                height: 150,
                buttons: {
                    "No": function () {
                        $(this).dialog("destroy");

                    },
                    "Yes": function () {
                        $("#btnCancel").unbind();
                        $(this).dialog("destroy");
                        document.getElementById('<%= btnCancel.ClientID %>').click();

                    }
                }
            });
        });

    });

然后在身体

<asp:button id="btnCancel" runat="server" cssclass="button_major" text="Cancel" style="float: right"
                    onclick="btnCancel_ClickEvent" clientidmode="Static" />