【问题标题】:Trying to create a WebService to return a 3D Array to populate table with javascript尝试创建 WebService 以返回 3D 数组以使用 javascript 填充表
【发布时间】:2010-02-04 16:57:16
【问题描述】:

我正在尝试创建一个基于搜索文本框的值构建的动态表。该表可能有 6 列,每列 20(最大)行。

我的问题是我无法弄清楚如何以一种允许我提取所需数据的方式将数据从 Web 服务返回到 JS 函数。

这是我目前拥有的网络服务方法:

[WebMethod]
public v_EMU_AIR_AIR[] GetCompletionList(string prefixText)
{
    NeoDataContext dataContext = new NeoDataContext();

    var results = from a in dataContext.GetTable<v_EMU_AIR_AIR>()
                  where a.Report_Date_ID.StartsWith(prefixText) ||
                  a.Item_Description.Contains(prefixText) ||
                  a.Drw_Nbr.StartsWith(prefixText)
                  select a;

    return results.ToArray<v_EMU_AIR_AIR>();

}

这将返回一个数组我的对象,但在我的 javascript 中:

populateTable:function(returnList) {

    var length = returnList.childNodes[0].childNodes.length

    for(var i=0; i<length; i++) {

        var textValue = returnList.childNodes[0].childNodes[i].textContent

         $("<tr><td>" + textValue + "</td></tr>").insertAfter(this.tblResults[0].childNodes[1]);                   
    }
}

我只能生成整个 Object 的转储,无法提取我需要的特定字段。

【问题讨论】:

  • 您是否考虑过以 XML/JSON 格式返回您的信息,而不是序列化对象数组 ("v_EMU_AIR_AIR")?
  • 是的,我想我只是不太确定该怎么做。对此有点新意。
  • @XpiritO:恕我直言,如果您不了解 Web 服务,为什么要发表评论? Web 服务框架显然会将返回值序列化,可能是 XML。

标签: c# asp.net javascript jquery web-services


【解决方案1】:

我会使用 Javascript Object Notation (JSON) 序列化您的对象。

很遗憾,此功能并未内置于 .NET 框架中,因此您需要自己编写代码。

幸运的是,大部分内容已经为您完成了。查看this link 或this link 了解更多信息。

在您的 javascript 中,您可以使用 jquery (documentation) 检索 JSON 对象,并像在 C# 中一样访问您的属性值

$(document).ready(function() {
    $.getJSON("http://url.to.webservice.com/", function(jsonObj) {
        alert(jsonObj.property);
    });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-30
    • 2023-03-29
    • 1970-01-01
    • 2020-01-18
    • 2016-07-24
    • 2020-08-14
    • 2023-03-15
    相关资源
    最近更新 更多