是否可以通过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>
网络方法:(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 :(得分:0)
我不禁想到像这样操纵ObjectDataSource控件是不好的。
如果我是对的,您想要删除或提高数据源的上限 在您的页面上没有完整的回发。
在这种情况下,您应该使用ObjectDataSource的内置功能 (例如,使用ControlParameter根据控件值设置上限值 或者在OnSelecting事件上设置上限值) 结合到另一种刷新数据的方式(比如使用UpdatePanel围绕网格视图并在回调中调用DataBind方法)。