【问题标题】:List (Generic) using jquery使用 jquery 列出(通用)
【发布时间】:2013-02-19 19:54:10
【问题描述】:

我在 asp.net 项目中有一个 webmethod,我想在 jquery ajax 方法中传递一个 listview,但我现在不知道如何检测 listview 的元素并使用它们。以下代码是我的 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;
}

【问题讨论】:

  • 您想使用 jquery 传递在 listview 中选择的值吗?
  • 不,我想通过 web 方法将数据表传递给 jquery ajax,但我使用了列表
  • 您想将列表从您的 c# 代码传递给一些 javascript 函数??或者你想要相反的??
  • 也许这会有所帮助:stackoverflow.com/questions/14377117/…
  • 我想将列表从我的 c# 传递给 javascript

标签: c# asp.net jquery


【解决方案1】:

好的,假设您有一个DataTable,并且您想将这个DataTable 的结果传递给一些JavaScript 以使用Ajax 显示结果。所以第一步是我们需要将这些结果转换成JSON 格式。你可以通过以下方法::

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);
}

下一步是在 JavaScript 中解析结果 JSON 字符串,我想这是最简单的部分。您可以查看此问题以了解如何将 JSON 字符串解析为对象 Safely turning a JSON string into an object 。如果您想了解更多信息,请告诉我。

【讨论】:

    【解决方案2】:

    您可以使用JSON.NET 将您的数据表序列化为 JSON。然后使用 ajax 调用 web 方法。

    在服务器端,

    [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
                }
            });
        });
    });
    

    注意:如果您不使用 web 服务/在代码中编写方法,请在您的类之前使用 [ScriptService] 装饰器并包含以下命名空间。

    using System.Web.Script.Services;
    using System.Web.Services;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-24
      • 2015-07-04
      • 1970-01-01
      • 1970-01-01
      • 2012-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多