2013-07-15 82 views
0

火在aspx.cs文件的方法,我想採用AjaxPersonalDetails.aspx.cs調用的方法。我嘗試過使用下面的代碼。但它不起作用。 我只想解僱PersonalDetails.aspx.cs中包含的方法我該怎麼做? :) 有人可以幫助我。如何使用AJAX

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"> 
</script> 


<script type="text/javascript"> 
    $(document).ready(function() { 
     $("input").keydown(function() { 
      $("input").css("background-color", "yellow"); 
     }); 
     $("input").keyup(function() { 
      $("input").css("background-color", "pink"); 

      $.ajax({ 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       url: "PersonalDetails.aspx/GetFarmersByName", 
       data: { name: +request.term }, 
       dataType: "json", 
       async: true, 
       dataFilter: function (data) { return data; }, 
       success: function (data) { 
        return data; 
       }, 
       error: function (XMLHttpRequest, textStatus, errorThrown) { 
        alert(textStatus); 
        alert(errorThrown); 
       } 
      }); 
     }); 
    }); 
</script> 

這是我想火的方法..

[WebMethod] 
    [ScriptMethod] 
    public bool GetFarmersByName(string name) 
    { 
     _personalData = new personalData(); 
     int cky = 45; 
     CdMa cdMas = new CdMa(); 
     cdMas = _personalData.getcdMasByConcdCd2(cky, "AdrPreFix", true); 
     int prefixKy = cdMas.CdKy; 

     List<FMISPersonalDataViewByName_Result> list = new List<FMISPersonalDataViewByName_Result>(); 

     list = _personalData.GetPersonalDataByName(prefixKy, cky, name); 

     if (list != null) 
     { 
      grvPersonalData.DataSource = list; 
      grvPersonalData.DataBind(); 
      return true; 
     } 
     return false; 

    } 
+0

你失蹤 1)static關鍵字 2)jquery數據屬性格式不正確 data:「{'name':'」+ request.term +「'}」 –

+0

當我把靜態它顯示了一個名爲「非靜態字段方法或屬性所需的對象引用」的錯誤,並突出顯示了「grvPersonalData」。 – tishantha

+0

在進行AJAX調用時,您將無法綁定來自代碼隱藏的數據網格。另外,靜態方法中不能使用非靜態字段。你能發佈完整的aspx源代碼嗎? –

回答

0

,請讓你的方法GetFarmersByName公共靜態布爾GetFarmersByName並嘗試調試代碼

,並更改以下

data: "{name: " + request.term + "}"

0
[WebMethod] 
[ScriptMethod] 
public bool GetFarmersByName(string name) 

這種方法必須是,如果你想通過AJAX調用它..

[WebMethod] 
[ScriptMethod] 
public static bool GetFarmersByName(string name) 
+0

當我把靜態它顯示一個錯誤稱爲「非靜態字段方法或屬性所需的對象引用」,突出顯示「grvPersonalData」。 – tishantha

2

李治廷庫雷希回答應該是公認的其中一個返回一些數據公共靜態方法。

如果你運行你正在運行的東西,你可能會得到「{」Message「:」無效的JSON原語:...「?看起來你的數據對象格式不正確,應該是數據: 「{...}」 或數據:JSON.stringify({...})

其中的方式是不正確也是 - 這已經指出