执行javascript/jquery代码OnClick并有条件地发布回ASP函数

Execute javascript/jquery code OnClick and conditional post back to ASP function

本文关键字:布回 ASP 函数 有条件 javascript jquery 代码 OnClick 执行      更新时间:2023-09-26

jQuery新手问题在这里。。。我有一个jQuery对话框,它显示一个带有"OK"或"Cancel"的警告,根据他们点击的内容,结果需要执行服务器端的ASP onClick事件。

我试着按照以下几行写:

            "OK": function () {
                $(this).dialog("close");
                return true;
            },
            Cancel: function () {
                $(this).dialog("close");
                return false;

但它从未返回到asp服务器端方法。

我是否偏离了我在这里试图实现的目标,是否有标准的"最佳实践"类型的方法来实现这种类型的功能?

您必须使用相应的eventTargeteventArgument调用__doPostBack()方法才能调用其服务器单击处理程序。

  "OK": function () {
       $(this).dialog("close");
       __doPostBack('serverElementId', 'arguments');
   }

您可以查看下面的链接来了解ASP.Net回发机制是如何工作的。

http://wiki.asp.net/page.aspx/1082/dopostback-function/

假设您想在"OK"上执行POST,则需要添加以下内容:

"OK": function () {
  $.post('someurl.asp', {data}, function() {
    // what to do after the post
  }
  $(this).dialog("close");
  return true;
}

按照目前的情况,无论哪种方式,您的代码都只是关闭对话框。

我没有asp.net的经验,但您可以使用AJAX请求将数据发布到服务器端脚本:

        "OK": function () {
            $(this).dialog("close");
            $.ajax({
                url      : 'myscript.asp',
                type     : 'get',
                dataType : 'json',
                data     : { state : 'OK' },
                success  : function (serverResponse) {
                    //you can now access the serverResponse
                },
                error    : (jqXHR, errorText, errorThrown) {
                    //always make sure to handle your errors
                }
            });
            return true;
        },
        Cancel: function () {
            $(this).dialog("close");
            $.ajax({
                url      : 'myscript.asp',
                type     : 'get',
                dataType : 'json',
                data     : { state : 'Cancel' },
                success  : function (serverResponse) {
                    //you can now access the serverResponse
                },
                error    : (jqXHR, errorText, errorThrown) {
                    //always make sure to handle your errors
                }
            });
            return false;
        }

$.ajax()的文档:http://api.jquery.com/jquery.ajax