2013-03-11 61 views
0

我想从aspx页面模型JQuery的自动完成数据装载

1)创建从一个aspx方法填充一个jQuery自动完成框,

2)一旦我得到的结果,我想填充这些结果在一个列表里面。

目前我正在尝试做第一步,但没有我的成功。

我的代码如下: -

ASPX

<script> 
    $(function() { 

     $("#persons").autocomplete({ 
      //source: availableTags 
      source: function (request, response) { 
       var term = request.term; 
       var personArray = new Array(); 

       $.post('JQAutoComplete.aspx/FetchPersonList', { personName: term }, function (persons) { 
        personArray = persons; 
        alert('PersonArray' - personArray); 
        alert('Persons' - persons); 
        response(personArray); 
       }); 
      } 
     }); 
    }); 

<div class="ui-widget"> 
    <label for="persons">Persons: </label> 
    <input id="persons" /> 
</div> 


</body> 

,我的aspx.cs是小号如下: -

 public JsonResult FetchPersonList(string personName) 
    { 
     var persons = ctx.GetDataFromXML(false, 0); 
     return (persons) as JsonResult; 
    } 

** * ** * ** * ****UPDATE ASPX.CS* ** * * * * ** * ** * ** * *** 行,所以我改变了方法如下: -

 [WebMethod] 
    public static List<Person> FetchPersonList() 
    { 
     //var persons = this.HouseService.SelectByName(houseName).Select(e => new String(e.Name.ToCharArray())).ToArray(); 
     var persons = ctx.GetDataFromXML(false, 0); 

     return (List<Person>) persons; 
    } 

,但我仍然无法通过该方法获得!


但是,代码根本没有触及此方法。

如何获取此列表?

感谢您的帮助和时间

+0

尝试设置的minLength为自动完成,也“cache = false”用于ajax请求 – 2013-03-11 12:04:07

+0

您是否在服务器端用[WebMethod]修饰了您的方法?这也可能是可能的原因, – 2013-03-11 12:06:35

+0

该方法应该是静态的,并且使用[WebMethod]属性进行解码。 – Devjosh 2013-03-11 12:07:30

回答

0

好的我发现了这个问题。

我改变了我的JQuery以下和现在调用方法: -

$(document).ready(function() { 
    SearchText(); 
}); 
function SearchText() { 
    $("#persons").autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       url: "JQAutoComplete2.aspx/FetchPersons", 
       data: "{'name':'" + document.getElementById('persons').value + "'}", 
       dataType: "json", 
       success: function (data) { 
        response(data.d); 
        alert(data.d); 
       }, 
       error: function (result) { 
        alert("Error"); 
       } 
      }); 
     } 
    }); 
} 

和我ASPX.CS看起来像这样: -

 [WebMethod] 
    public static List<Person> FetchPersons(string name) 
    { 
     var persons = ctx.GetDataFromXML(false, 0); 

     return (List<Person>)persons; 

    }