不为ImageButton触发OnClientClick

时间:2011-12-07 19:35:10

标签: c# javascript .net imagebutton onclientclick

我有一个ASP.NET ImageButton,OnClientClick()应该触发一个js函数,该函数从两个文本字段中读取值,并将其发送到服务器端的WebMethod。使用WebMethod将其发送到另一个处理存储的实体方法。我已经尝试通过在服务器端的WebMethod和存储方法中设置断点来进行调试,但是都没有达到。然后我尝试使用Mozilla Firebug工具在客户端设置断点。 js函数永远不会被调用,页面只会刷新。我在另一个js函数中设置了一个断点,它被完美地追踪。有什么帮助吗?

ASP
<asp:ImageButton input="image" ID="btnSend" ImageUrl="Images/send_button.jpg" 
   runat="server"                                                            
   onclientclick="javascript:handle(); return false">
</asp:ImageButton>


JS
function handle() {
        window.$get("#" + "<%= btnSend.ClientID %>").click(
            function () {
                var txtVC = window.$get("#" + "<%= txtVC.ClientID %>").value();
                var txtMsg = window.$get("#" + "<%= tbMgSend.ClientID %>").value();

                if (txtVC != "" || txtMsg != "") {
                    window.PageMethods.SendMsg(txtVC, txtMsg, txtMessageResult);
                    return window.$get("#" + "<%= lblMessageStatus.ClientID%>").value("SUCCESS"), 
                    alert("SUCCESS");
                }
                else {
                    return alert("Text Message is Empty!");
                }
            });
    }

function txtMsgResult(result) {
        if (result != '') {
            window.$("#" + "<%= lblMessageStatus.ClientID %>").innerHTML = result;
            alert("SUCCESS");
        }
    }

我尝试过以下方法:   * OnclientClick有和没有返回   * $ get with without concat(+)   *将服务器端更改为方法而不是Web方法,并且也不会触发

2 个答案:

答案 0 :(得分:0)

您是否在没有return false的情况下尝试过它?

<asp:ImageButton input="image" ID="btnSend" ImageUrl="Images/send_button.jpg" 
   runat="server"                                                            
  onclientclick="handle()">
</asp:ImageButton>

答案 1 :(得分:0)

也许它不起作用,因为它是autoPostBack。 我不确定是否有办法在ImageButton中将其关闭。为什么不使用HTML控件?