0

私はasp.netプロジェクトにwebmethodを持っています.jquery ajaxメソッドでリストビューを渡したいのですが、リストビューの要素を検出してそれらを使用する方法がわかりません.次のコードは私のC#コードです.bt jqueryコードが必要です

if (ck != null)
{
      reqnum[0, 0] = "@RequestingBranchID";
      reqnum[0, 1] = ck["BranchID"];
      reqnum[1, 0] = "@ProviderBranchID";
      reqnum[1, 1] = customer.ToString();
      DataTable dt = SqlCommands.FillData(out OutStatus, out OutMessage, "BSD.SW_Boxes_StockOfProviderAndRequestingBranch", CommandType.StoredProcedure, reqnum);
      List<DataRow> rows = dt.Rows.Cast<DataRow>().ToList();
      int x=rows.Count;
      return rows;
}
4

2 に答える 2

0

があり、この結果を JavaScript にDataTable渡して、を使用して結果を表示するとします。したがって、最初のステップは、これらの結果をJSON形式に変換する必要があることです。次の方法を実行できます::DataTableAjax

public string GetJson(DataTable dt)
{
    System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
    List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
    Dictionary<string, object> row = null;

    foreach (DataRow dr in dt.Rows) {
        row = new Dictionary<string, object>();
        foreach (DataColumn col in dt.Columns) {
            row.Add(col.ColumnName, dr[col]);
        }
        rows.Add(row);
    }
    return serializer.Serialize(rows);
}

次のステップは、結果のJSON文字列を JavaScript で解析することです。これは簡単な部分だと思います。この質問をチェックして、 JSON文字列をオブジェクトに解析する方法を確認できます。JSON文字列を安全にオブジェクトに変換します。詳細を知りたい場合は教えてください。

于 2013-02-18T11:26:37.380 に答える
0

JSON.NETを使用して、データテーブルを JSON にシリアル化できます。次に、ajax を使用して webmethod を呼び出します。

サーバー側では、

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string GetList(int branchID, string customer)
{
    // do your code here
    reqnum[0, 0] = "@RequestingBranchID";
    reqnum[0, 1] = branchID;
    reqnum[1, 0] = "@ProviderBranchID";
    reqnum[1, 1] = customer;
    DataTable dt = SqlCommands.FillData(out OutStatus, out OutMessage, "BSD.SW_Boxes_StockOfProviderAndRequestingBranch", CommandType.StoredProcedure, reqnum);
    if(dt!=null)
    {
          return Newtonsoft.Json.JsonConvert.SerializeObject(dt);
    }
    else{
        //return "[]"; 
    }
}

次に、スクリプトでメソッドを呼び出し、メソッドのパラメーターを渡します。

$(function(){});
    $('#myButton').click(function() {
        $.ajax({ 
            type: "POST",
            url: "YourPage.aspx/GetList",
            data: "{'branchID':" + branchID + ",'customer':" + customer + "}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                var jsonResult = $.parseJSON(data.d);
                // do your client side code here
            }
        });
    });
});

[ScriptService]注: Web サービスを使用していないか、コード ビハインドでメソッドを記述していない場合は、クラスの前にデコレータを使用し、次の名前空間を含めます。

using System.Web.Script.Services;
using System.Web.Services;
于 2013-02-18T11:33:49.280 に答える