【问题标题】:Return and Save XML Object From Sharepoint List Web Service从 Sharepoint 列表 Web 服务返回并保存 XML 对象
【发布时间】:2010-03-16 19:44:18
【问题描述】:

我正在尝试使用来自页面加载时的 ajax 调用的 XML 响应填充变量,以便在 keyup 时我可以过滤该列表而无需重复获取请求(认为非常基本的自动完成)。我遇到的问题似乎可能与变量范围有关,但我对 js/jQuery 相当陌生,所以我不太确定。

以下代码在 key up 上没有做任何事情,向它添加警报告诉我它正在 keyup 上执行 leadResults() 并且该变量正在返回一个 XML 响应对象,但它似乎是空的。奇怪的是,如果我将 leadResults() 调用移到 getResults() 函数中,UL 会正确填充结果。

我在这个问题上撞墙了,请帮忙!

var resultsXml;

$(document).ready( function() {
    var leadLookupCaml =
         "<Query> \
            <Where> \
                <Eq> \
                  <FieldRef Name=\"Lead_x0020_Status\"/> \
                  <Value Type=\"Text\">Active</Value> \
                </Eq> \
            </Where> \
         </Query>"

    $().SPServices({
                    operation: "GetListItems",
                    webURL: "http://sharepoint/departments/sales",
                    listName: "Leads",
                    CAMLQuery: leadLookupCaml,
                    CAMLRowLimit: 0,                    
                    completefunc: getResults    
                });

})

$("#lead_search").keyup( function(e) {

leadResults();

})



function getResults(xData, status) {
resultsXml = xData;

}   

function leadResults() {
xData = resultsXml;
   $("#lead_results li").remove();
   $(xData.responseXML).find("z\\:row").each(function() {

        var selectHtml = 
            "<li>"
             + "<a href=\"http://sharepoint/departments/sales/Lists/Lead%20Groups/DispForm.aspx?ID=" + $(this).attr("ows_ID") + ">" + $(this).attr("ows_Title")+" : " + $(this).attr("ows_Phone")    + "</a>\
             </li>";
        $("#lead_results").append(selectHtml);



    });
}

【问题讨论】:

    标签: jquery ajax sharepoint web-services


    【解决方案1】:

    在校对我提交的内容后,这非常明显!需要同步进行 ajax 调用。将 async 设置为 false 拯救了这一天!

    【讨论】:

      猜你喜欢
      • 2014-06-28
      • 1970-01-01
      • 2012-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-01
      • 1970-01-01
      相关资源
      最近更新 更多