2011-12-14 113 views
0

此代码如下坐在上Site.Mater一个ASP.Net应用程序....阿贾克斯的Json多个参数

我需要从Default.aspx页,一个ASP通过另外两个参数:标签和一个asp:textbox

这样做最简单的方法是什么?

感谢

 <script type="text/javascript"> 
     $(function() { 
       $(".tb").autocomplete({ 
       source: function (request, response) { 
        $.ajax({ 
         url: "TestWebService.asmx/FetchList", 
         data: "{ 'testName': '" + request.term + "'}", 
         dataType: "json", 
         type: "POST", 
         contentType: "application/json; charset=utf-8", 
         dataFilter: function (data) { return data; }, 
         success: function (data) { 
          response($.map(data.d, function (item) { 
           return { 
            value: item.Name 

           } 
          })) 
         }, 
         error: function (XMLHttpRequest, textStatus, errorThrown) { 
          alert(textStatus); 
         } 
        }); 
       }, 
       minLength: 2 

      }); 
     }); 

回答

2

在你的jQuery自动完成,您需要将data参数改成这样:

data: "{ 'testName': '" + request.term + "' ,lbl: '" + $(".lblClass").text() + "' ,txt: '" + $(".txtClass").val() + "'}" 

,然后改变你的服务的方法是这样的:

[WebMethod] 
public List<string> FetchList(string testName, string lbl, string txt) 
{ 
    //... 
} 


注意: .lblClass.txtClass分别为ASP类:Lable和ASP:TextBox。

+0

谢谢,这真是太棒了...但是你怎么知道要传递哪个文本框或标签? (我在default.aspx页面中有几个文本框和标签) – 2011-12-14 11:48:39