【问题标题】:How to call two functions on single event. one as a javascript function other a server side function如何在单个事件上调用两个函数。一个作为 javascript 函数,另一个作为服务器端函数
【发布时间】:2011-01-03 07:44:14
【问题描述】:

我想在同一个事件上调用两个函数 1 是客户端,其他 1 是服务器端。 我该怎么做呢

 <input type="text" ID="txtUserName" runat="server" maxlength="50"
                            class="DefaultTextbox" style="width:180px;" value="" 
                            onfocus="ControlOnFocus('', this, spanUserName);"
                            onblur="ControlOnBlur('',this, spanUserName); "
                            />

onblur="ControlOnBlur(); function2();

对吗?

onblur="ControlOnBlur(); function2();

【问题讨论】:

标签: c# asp.net javascript asp.net-ajax


【解决方案1】:

如果使用 web 表单,你想回传到服务器来处理服务器端事件,你可以使用 __doPostBack(this.name, '') 回传到服务器(或者提到你可以使用服务器端事件来输出(GetClientResourceUrl 我相信或类似地命名),但我喜欢使用 __doPostBack 方法来执行回发。

如果使用 MVC,您可以使用 $.get 或 $.post 调用操作方法,如 $.get("/Controller/Action", function(result) { })。对于 Web 表单,您不能直接调用方法。您可以调用 Web 服务或页面方法。

HTH

【讨论】:

    【解决方案2】:

    最接近的方法是调用本地函数 (javascript),然后通过异步调用 (Ajax) 向服务器发出请求。但是,您不能直接从客户端调用服务器上的方法。

    使用 jQuery,它看起来像这样:

    $("#txtUserName").blur(function(e){
      ControlOnBlur(); // call first function
      $.post("/methods", {methodName:"refreshData", function(results){
        /* results represents that which was returned from the server */
        alert(results);
      });
    });
    

    【讨论】:

      【解决方案3】:

      没错。实际上,在 HTML 中定义内联事件并不是很好的做法,但它确实有效。 onblur="" 中 " 和 " 之间的所有内容都被视为一个长 JavaScript 代码块,因此您可以在其中编写任何内容,如果您愿意,甚至可以编写整个程序。

      onblur="sentence1; sentence2; sentence3;"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多