2012-10-15 62 views
0

是否有可能通過jquery ajax將ObjectDataSource傳遞給Web方法?是否可以通過jQuery Ajax將ObjectDataSource傳遞給Web方法?

的jQuery的Ajax:

jQuery.ajax(
{ 
    type: "POST", 
    url: '<%= ResolveUrl("~/Webservices/LoadActivities.asmx/LoadMoreData") %>', 
    //data: data, 
    data: '{"ObjectDataSource1":' + JSON.stringify(jQuery('<%= ObjectDataSource1.ClientID %>')) + '}', 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 

}); 

對象數據源:

 <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetActivities" TypeName="MyMethodLocation" > 
      <SelectParameters> 
       <asp:Parameter Name="top" DefaultValue="10" Type="Int32" /> 
      </SelectParameters> 
     </asp:ObjectDataSource> 

Web方法:(LoadActivities.asmx)

[System.Web.Script.Services.ScriptService] 
public class LoadActivities : System.Web.Services.WebService 
{ 

    [WebMethod] 
    public void LoadMoreData(ObjectDataSource ObjectDataSource1) 
    { 
     // MANIPULATE OBJECT DATA SOURCE 
    } 
} 

如果我做的對象不正確傳遞,當web方法執行時,它說「對象引用未設置爲對象的實例」。

+0

在客戶端上呈現時,JSON看起來像什麼(數據元素)? –

+0

我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

回答

0

我不禁想到,操縱這樣的ObjectDataSource控件是不好的。

如果我是正確的,您希望刪除或提高數據源 的上限,並且在您的網頁上沒有完整回傳。

在這種情況下,你應該使用的ObjectDataSource 的內置功能(用於實例,使用ControlParameter設置的基於控制值 上限值設定在OnSelecting事件上限值) 結合到另一種刷新數據的方式(例如用UpdatePanel圍繞gridview並在回調中調用DataBind方法)。

相關問題