0

我正在编写一个 AJAX 项目,我想知道正确的方法,(不使用 Visual Studio 的内置 AJAX)

我正在使用带有 JQuery 的 AJAX 调用,这是我的问题:在服务器端,我创建了 AjaxProj.aspx,它不包含任何 html 代码,在这个 Page_load 函数中具有捕获 ajax 请求的所有代码,并且在代码的末尾拥有

response.end();

我真的很想知道我是否以正确的方式使用它(我再次不想使用工具箱中的 .net AJAX)

都...

4

2 回答 2

0

请向我们粘贴您的一些代码以正确使用 Ajax 您应该使用 webmethode 函数,并且您的函数应该是静态的,例如:

 $(document).ready(function () {
  var text = $("#<%=ApplicationSearchResult.ClientID %>").val(); 
  // Add the page method call as an onclick handler for the div.
  $("#<%=ApplicationSearchResult.ClientID %>").autocomplete({
   source: function (request, response) {
   $.ajax({
   type: "POST",
   url: "Dashboard.aspx/GetTreeNodesByText",
  data: "{'text': '" + request.term + "'}",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
 success: function (data) {
  response(data.d);
   }
  });
  },
  minLength: 1
  });//end auto complete

  });

服务器端功能:

[WebMethod]
public static List<string> GetTreeNodesByText(string text)
{


    List<string> Nodes = new List<string>();
    if (HttpContext.Current.Session["SerialSearchDT"] != null)
    {

        DataTable DT = HttpContext.Current.Session["SerialSearchDT"] as DataTable;
        DataRow[] filteredDataTable = DT.Select("NODE_NAME LIKE '" + text + "%'");
        //  DT.DefaultView.ToTable(true, "NODE_NAME");

        for (int i = 0; i < filteredDataTable.Length; i++)
        {
            string res = filteredDataTable[i][2].ToString();

            Nodes.Add(res);

        }//end For

    }//endIF
    return Nodes.Distinct().ToList();
}

这是一个例子,我希望它可以帮助你解决你的问题

于 2012-08-17T11:05:10.153 回答
0

首先编写您的服务器端代码:

[WebMethod()]
public static string GetData(int userid)
{
    /*do stuff*/
    return userId.ToString();
}

重要说明:该方法必须是静态的,并且必须具有 WebMethod 属性,然后是 javascript 部分:

function asyncServerCall(userid) {
    jQuery.ajax({
 url: 'WebForm1.aspx/GetData',
 type: "POST",
 data: "{'userid':" + userid + "}",
 contentType: "application/json; charset=utf-8",
 dataType: "json",
 success: function (data) {
     alert(data.d);
 }

    });
}

然后不要忘记传递js函数:

<input type="button" value="click me" onclick="asyncServerCall(1);" />

并且您必须在 ScriptManager 中启用PageMethods

于 2012-08-17T11:13:26.220 回答