2012-10-15 73 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方法)。

相关问题