0

ObjectDataSourcejquery ajaxを介して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メソッドを実行すると、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」と表示されます。

4

1 に答える 1

0

そのようにObjectDataSourceコントロールを操作するのは悪いことだと思わずにはいられません。

私が正しければ、ページに完全なポストバックがない状態で、データソースの上限を削除または引き上げたいと考えています。

その場合、ObjectDataSourceの組み込み機能を使用する必要があります(たとえば、ControlParameterを使用して、制御値に基づいて上限値を設定するか、OnSelectingイベントの上限値を設定します)。データを更新します(グリッドビューをUpdatePanelで囲み、コールバックでDataBindメソッドを呼び出すなど)。

于 2012-11-28T10:58:54.033 に答える