2012-10-15 5 views
0

ObjectDataSource을 jquery ajax를 통해 웹 메서드에 전달할 수 있습니까?jQuery Ajax를 통해 ObjectDataSource를 웹 메서드에 전달할 수 있습니까?

jQuery를 아약스 :

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> 

웹 방법 : 내가 할 경우 (LoadActivities.asmx)

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

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

는 객체가 올바르게 전달되지 않습니다 , 웹 메서드가 실행될 때 "개체 참조가 개체의 인스턴스로 설정되지 않았습니다"라고 표시됩니다.

+0

클라이언트에서 렌더링 될 때 JSON (데이터 요소)은 어떤 모습입니까? –

+0

제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야한다"는 것을 참조하십시오. –

답변

0

저는 ObjectDataSource 컨트롤을 조작하는 것이 좋지 않다고 생각합니다.

맞다면 페이지에 전체 포스트 백이없는 데이터 소스 의 상한을 제거하거나 올리려고합니다. 이 경우

, 당신은 제어 값 에 따라 최고 한계 값을 설정하는 ControlParameter을 사용하여, 인스턴스에 대한 ObjectDataSource를 의 내장 기능을 (사용하거나 OnSelecting 이벤트에 최고 한계 값을 설정해야합니다) 을 다른 방법으로 사용하여 데이터를 새로 고칩니다 (예 : UpdatePanel을 사용하여 gridview를 둘러싸고 콜백에서 DataBind 메서드를 호출).