2013-03-11 62 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; 

    }